Releases: awspring/spring-cloud-aws
3.2.0
Reference documentation
π https://docs.awspring.io/spring-cloud-aws/docs/3.2.0-/reference/html/index.html
What's Changed
Spring Cloud AWS 3.2.0 brings compatibility with Spring Boot 3.3.x and contains all changes introduced in version 3.2.0-M1.
Highlights
Simplified integration testing with LocalStack through new modules:
spring-cloud-aws-testcontainers
- adds support for@ServiceConnection
&LocalStackContainer
spring-cloud-aws-docker-compose
- support for LocalStack via Docker Compose integration by @dominik-kovacs in #1123
Integration with Spring Modulith:
- SQS and SNS integration for Spring Modulith's Externalized Events has been migrated to Spring Cloud AWS by @maciejwalkowiak in #1068
SQS
SqsMessageListenerContainer
fails fast if queue names are not all FIFO or Standard by @internetstaff in #1001- Add default behaviour for queue not found strategy by @tomazfernandes in #1190
- Batch now supports
@SnsNotification
payload by @tomazfernandes in #1191 - Enable receiving messages from different message groups in the same batch for FIFO queues by @tomazfernandes in #1192
- Add
BatchVisibility
listener method parameter by @tomazfernandes in #1193 - Auto-configure default
MessageConverter
by @tomazfernandes in #1194 - Enable
SqsMessagingMessageConverter
to handle JSON Strings with JSON Mime Type by @tomazfernandes in #1195
DynamoDb
- Delete operation now returns entity which was deleted @MatejNedic in #1185
S3
- Make
getUrl
return location of bucket if object is empty ornull
by @MatejNedic in #1158
SES
- Fix: when sending emails field 'to' is not taking into consideration when sending CC and BCC types @buckett in #1174
Docker Compose
- Add LocalStack docker compose support by @dominik-kovacs in #1123
Dependencies
- Upgrade AWS SDK to 2.25.70 by @maciejwalkowiak in #1207
New Contributors
- @elkkhan made their first contribution in #1128
- @lawseff made their first contribution in #1139
- @internetstaff made their first contribution in #1001
- @manakbisht made their first contribution in #1151
- @buckett made their first contribution in #1174
- @dominik-kovacs made their first contribution in #1123
Full Changelog: v3.2.0-M1...v3.2.0
3.2.0 M1
Reference documentation
π https://docs.awspring.io/spring-cloud-aws/docs/3.2.0-M1/reference/html/index.html
What's Changed
Testcontainers
Added a module spring-cloud-aws-testcontainers
that simplifies testing Spring Cloud AWS against LocalStack:
- Add
@ServiceConnection
support. by @maciejwalkowiak in #1075 - Add
LocalstackAwsClientFactory
to simplify creating AWS clients pointing to LocalStack by @maciejwalkowiak in #1106
Spring Modulith
SQS and SNS integration for Spring Modulith's Externalized Events has been migrated to Spring Cloud AWS:
- Add Spring Modulith integration with SQS and SNS by @maciejwalkowiak in #1068
SQS
- Document behavior change when sending / receiving List of messages. by @alexisgra in #1101
- Polished Javadocs examples in
SqsMessageListenerContainer
andSqsMessageListenerContainerFactory
by @sefabal in #1102
S3
- Remove Cross Region S3 client. by @maciejwalkowiak in #1103
Core
- Add
@NestedConfigurationProperty
to display profile name and path when configuring application properties by @kcsurapaneni in #1109 - Upgrade AWS SDK to 2.25.21 by @edelauna in #1115
Secrets Manager
- Auto-configure
SecretsManagerClient
even if config import is not used. by @maciejwalkowiak in #1114
SNS
New Contributors
- @sefabal made their first contribution in #1102
- @kcsurapaneni made their first contribution in #1109
- @edelauna made their first contribution in #1115
- @sondemar made their first contribution in #1105
Full Changelog: v3.1.1...v3.2.0-M1
3.1.1
Reference documentation
π https://docs.awspring.io/spring-cloud-aws/docs/3.1.1/reference/html/index.html
What's Changed
SQS
- Fix:
QueueAttributesResolver
throws when creating Fifo queue (#995) by @tomazfernandes in #1002 - Fix: Permits are not released when Conversion Error happens. by @tomazfernandes in #1090
- Fix: Acknowledgement Graceful Shutdown. @tomazfernandes in #1082
- Fix: Add Missing Synchronization in Ack Buffer Access by @tomazfernandes in #1038
- Fix: time unit in log message for slow acknowledgements by @PatrickGotthard in #1030
- Deserialize SNS messages posted to SQS queue with
@SnsNotificationMessage
by @msosa in #898 - Simplify not adding type header when sending a message with
SqsTemplate
. (#659) by @levys17 in #1066 - Add support for Spring Retry
BackOffPolicy
when SQS Polling thread throws an exception. by @tomazfernandes in #1008 - Document default value for Acknowledgement Shutdown Timeout and Listener Shutdown Timeout by @mt-ocado in #1034
- Document changes in sending & receiving list of messages between 2.x and 3.x (#1101) by @alexisgra
- Fixed legacy Javadoc examples in
SqsMessageListenerContainer
andSqsMessageListenerContainerFactory
(#1102) by @sefabal
Simple Email Service`
- Add
configurationSetName
configuration property by @thomas-burko in #1007 - Add
fromArn
configuration property @thomas-burko in #1026
Parameter Store and Secrets Manager
- Secrets Manager integration can be disabled by setting
enable
field to false. by @maciejwalkowiak in #1009 - Parameter Store integration can be disabled by setting
enable
field to false. @MatejNedic in #1039 - Update documentation on reload feature in Parameter Store and Secrets Manager by @maciejwalkowiak in #1088
- Added trailing slash to parameter store examples by @thelateperseus in #1086
- Parameter Store 2.x.x -> to 3.x.x migration documentation @rratliff in #1032
DynamoDb
- DynamoDb integration now supports global suffix automatically assigned to table names via global property. @vldr-ivakhnenko in #1081
Core
AnonymousCredentialsProvider
is used now with by default when STS integration is enabled @MatejNedic in #1089- Fixed property name
StsProperties#asyncCredentialsUpdate
by @MatejNedic in #1011
Dependency Upgrades
- Upgrade AWS SDK to 2.21.46 by @maciejwalkowiak in #1085
New Contributors
- @thomas-burko made their first contribution in #1007
- @PatrickGotthard made their first contribution in #1030
- @rratliff made their first contribution in #1032
- @thelateperseus made their first contribution in #1086
- @vldr-ivakhnenko made their first contribution in #1081
- @msosa made their first contribution in #898
- @levys17 made their first contribution in #1066
Big thanks to all contributors! π
Full Changelog: v3.1.0...v3.1.1
3.1.0
Reference documentation
π https://docs.awspring.io/spring-cloud-aws/docs/3.1.0/reference/html/index.html
What's Changed
Spring Cloud AWS 3.1.0 brings compatibility with Spring Boot 3.2.x and contains all changes introduced in version 3.0.4.
Secrets Manager
Dependencies
- Upgrade to Spring Cloud 4.1.0 by @maciejwalkowiak in #981
New Contributors
3.0.4
Reference documentation
π https://docs.awspring.io/spring-cloud-aws/docs/3.0.4/reference/html/index.html
What's Changed
DynamoDB
- Configure DynamoDb TableSchema as a bean by @maciejwalkowiak in #957
S3
- fix: correct conditional for S3CrtAsyncClientAutoConfiguration by @iuliiasobolevska in #970
- Add support for SDK's cross-region S3 client. by @maciejwalkowiak in #960
- Fix S3Template.createSignedPutURL not applying given ObjectMetadata by @LucasJC in #974
- Add S3Client objectExists support in S3Template by @Ziemowit in #978
- apply path-style-access-enabled config to CRT client by @chrisrhut in #872
Core
- Fix startup when only base starter is included in classpath. by @maciejwalkowiak in #955
SQS
- Add ContentBasedDeduplication option when sending SQS messages (#938) by @tomazfernandes in #987
Maintenance
New Contributors
- @iuliiasobolevska made their first contribution in #970
- @LucasJC made their first contribution in #974
- @Ziemowit made their first contribution in #978
- @chrisrhut made their first contribution in #872
Big thanks to all contributors! π
Full Changelog: v3.0.3...v3.0.4
3.0.3
Reference documentation
π https://docs.awspring.io/spring-cloud-aws/docs/3.0.3/reference/html/index.html
What's Changed
SQS
- Add manual container instantiation sample by @mcruzdev in #788
- Add Validator setter in
EndpointRegistrar
by @maksym-telepchuk-ocado in #893 - Enhance
SqsAutoConfiguration
to use an availableObjectMapper
by @postalservice14 in #906 - Add acknowledgement mode on
@SqsListener
annotation by @jvcalassio in #870
S3
- Fix S3 file listing if the prefix resolves to slash by @klopfdreh in #912
- Add a method to check if bucket exists in
S3Template
by @straurob in #915 - Fix
S3Presigner
region resolution by @anappi-vc in #937
Parameter Store
- Adds array properties support to Parameter Store by @deki in #894
- Add option to set property prefix on Parameter Store property sources by @beccagaspard in #927
Secrets Manager
- Log reason why retrieving secrets failed. by @maciejwalkowiak in #928
SNS
- Set more detailed data type on
timestamp
attribute in SNS message. by @maciejwalkowiak in #932
Core
- Fixed
AwsClientCustomizer
to handleasyncHttpClientBuilder
properly by @mokamoto12 in #875
Documentation
- Update docs and labels to use correct casing for LocalStack by @tinyg210 in #895
- Fix link to index page from appendix. by @maciejwalkowiak in #930
Dependency Updates
- Upgrade Spring Cloud Commons to 4.0.4 by @straurob in #916
- Upgrade AWS SDK v2 to 2.21.12
- Upgrade Amazon DAX Client to 2.0.4
- Upgrade AWS CRT to 0.28.3
New Contributors
- @maksym-telepchuk-ocado made their first contribution in #893
- @postalservice14 made their first contribution in #906
- @tinyg210 made their first contribution in #895
- @straurob made their first contribution in #916
- @deki made their first contribution in #894
- @anappi-vc made their first contribution in #937
- @beccagaspard made their first contribution in #927
- @jvcalassio made their first contribution in #870
Full Changelog: v3.0.2...v3.0.3
3.0.2
Reference documentation
π https://docs.awspring.io/spring-cloud-aws/docs/3.0.2/reference/html/index.html
What's Changed
SQS
- Fix
corePoolSize
so that maximum number of messages (maxConcurrentMessages
* number of queues) are processed simultaneously. by @mokamoto12 in #833 - Add support for autoStartup by @marcinmilewski93 in #827
- Ability to set SmartLifecycle.phase to SqsMessageListenerContainer/DefaultListenerContainerRegistry by @estigma88 in #821
- Fix the position of log parameters by @tw-kang-namas in #853
S3
- Add S3Client listObjects support in S3Template by @alexisgra in #831
New Contributors
- @mokamoto12 made their first contribution in #833
- @marcinmilewski93 made their first contribution in #827
- @estigma88 made their first contribution in #821
- @tw-kang-namas made their first contribution in #853
- @alexisgra made their first contribution in #831
Full Changelog: v3.0.1...v3.0.2
3.0.1
Reference documentation
π https://docs.awspring.io/spring-cloud-aws/docs/3.0.1/reference/html/index.html
What's Changed
S3
- Implement
utilities()
andwaiter()
methods inCrossRegionS3Client
that delegate to default S3 client. by @maciejwalkowiak in #798 - S3Resource improved getURL handling by @klopfdreh in #795
getURL()
method on S3Resource
respects now spring.cloud.aws.s3.path-style-access-enabled
property. For example, for bucket 's3resourcetestand key
new-file.txt`:
- with
spring.cloud.aws.s3.path-style-access-enabled
set tofalse
,getURL()
returns: https://s3resourcetest.s3.eu-west-1.amazonaws.com/new-file.txt - with
spring.cloud.aws.s3.path-style-access-enabled
set totrue
,getURL()
returns: https://s3.eu-west-1.amazonaws.com/s3resourcetest/new-file.txt
SQS
- Conditionally add a random UUID dedup ID if the queue isn't configured for content based deduplication by @jwilmoth-nc in #799
Fixed a bug where for sending messages to FIFO queues the framework would generate a random UUID for missing messageDeduplicationId even if content-based deduplication was enabled on AWS.
Now the framework will only generate a UUID for missing messageDeduplicationId if content-based deduplication is disabled.
Projects that depend on FIFO content-based deduplication should upgrade to 3.0.1 since the bug can lead to duplicated messages being sent.
Parameter Store
Dependency upgrades
- Upgrade AWS SDK to 2.20.63 by @maciejwalkowiak in #805
- Upgrade AWS CRT to 0.21.14 by @maciejwalkowiak in #806
Samples
New Contributors
- @jwilmoth-nc made their first contribution in #799
Full Changelog: v3.0.0...v3.0.1
3.0.0
Spring Cloud AWS 3.0 is a rewrite of the project using AWS SDK v2 for Java. Since this has required a major refactoring, we took it as an opportunity to revisit all the assumptions and integrations modules. As a result, we've produced a library that is lightweight, flexible, causes less headache and provides simple to use abstractions.
Spring Cloud AWS 3.0 is compatible with Spring Boot 3.0+.
Reference documentation
To understand the full scope of changes we recommend going through the change list for each milestone and release candidate version:
Since a lot of things have changed, we strongly recommend going through the (completely rewritten) reference documentation:
π https://docs.awspring.io/spring-cloud-aws/docs/3.0.0/reference/html/index.html
What's Changed between 3.0.0 RC2 and 3.0.0
Core
- Autoconfigure
StsWebIdentityTokenFileCredentialsProvider
by @eduanb in #691 - Update AWS SDK v2 to 2.20.55 version by @MatejNedic in #784
SQS
- Fix SQS message attributes mapping with custom data types by @npoirier in #746
- SQS: fix missing headers by @tomazfernandes in #781
S3
- Implement
getFilename
onS3Resource
by @vedgunjan in #750
SES
SNS
CloudWatch
Feedback
We are aware that this release breaks existing code but this was the only sensible way we could evolve the framework and meet the demand in constrained time we have. We are very open for your feedback and appreciate any shoutout on social media and Github βοΈ.
This release would not happen without our wonderful community. Big thanks for your bug reports, ideas and pull requests!
New Contributors since version 2.4.0
- @mcruzdev made their first contribution in #76
- @zeldigas made their first contribution in #310
- @anthonyfoulfoin made their first contribution in #338
- @willome made their first contribution in #353
- @anugrahsinghal made their first contribution in #360
- @krimsz made their first contribution in #361
- @sgarfinkel made their first contribution in #400
- @sis-yoshiday made their first contribution in #451
- @fjmacagno made their first contribution in #459
- @tomazfernandes made their first contribution in #374
- @rajadilipkolli made their first contribution in #517
- @akefirad made their first contribution in #555
- @thorntonrp made their first contribution in #589
- @kesslerj made their first contribution in #604
- @AlekSimpson made their first contribution in #605
- @klopfdreh made their first contribution in #558
- @Belair34 made their first contribution in #620
- @HarshCasper made their first contribution in #637
- @xiurobert made their first contribution in #710
- @kunalvarpe made their first contribution in #729
- @arunkpatra made their first contribution in #726
- @vedgunjan made their first contribution in #750
- @sbouhaddi made their first contribution in #755
- @npoirier made their first contribution in #746
- @schjan79 made their first contribution in #762
- @jkatnik made their first contribution in #756
- @eduanb made their first contribution in #691
- @thake made their first contribution in #779
Big thanks to all contributors! π
Full Changelog: v2.4.0...v3.0.0
3.0.0-RC2
Reference documentation
π https://docs.awspring.io/spring-cloud-aws/docs/3.0.0-RC1/reference/html/index.html
What's Changed
S3
- Add
createRelative
method toS3Resource
. by @maciejwalkowiak in #652
SNS
- Introduce SNS resolver by list by @MatejNedic in #647
- Fix FIFO topics support in SNS integration by @xiurobert in #710
Secrets Manager & Parameter Store
- Remove "enabled" from Parameter Store and Secrets Manager docs. by @maciejwalkowiak in #677
SQS
- Enable SpEL for multiple queues in SQS by @tomazfernandes in #699
- Improve
SemaphoreBackPressureHandler
logging (#700) by @tomazfernandes in #701 - Change
SqsSendOptions
ids API to String (#694) by @tomazfernandes in #698 - Resolve other
MessageAttributeValue
types (#708) by @tomazfernandes in #709 - Consider batch size when switching throughput mode (#719) by @tomazfernandes in #720
DynamoDB
- Add option to set DynamoDB table prefix. by @arunkpatra in #726
- Add support for indexes in scans and queries in
DynamoDbTemplate
by @MatejNedic in #680
Other
- Upgrade AWS SDK by @kunalvarpe in #729
- Add
spring-cloud-aws-test
to BOM. by @maciejwalkowiak in #731 - Improve reference guide instructions for BOM usage for Gradle by @neiljbrown in #704
New Contributors
- @xiurobert made their first contribution in #710
- @kunalvarpe made their first contribution in #729
- @arunkpatra made their first contribution in #726
Big thanks to all contributors! π
Full Changelog: v3.0.0-RC1...v3.0.0-RC2