Releases: awspring/spring-cloud-aws
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
2.4.4
What's Changed
- RelativeKey should not include / if no objectName. by @ryanjbaxter in #649
New Contributors
- @ryanjbaxter made their first contribution in #649
Full Changelog: v2.4.3...v2.4.4
3.0.0-RC1
Spring Cloud AWS 3.0 RC1 brings all the features that are planned for the 3.0 release.
π https://docs.awspring.io/spring-cloud-aws/docs/3.0.0-RC1/reference/html/index.html
The most notable features added in RC1 are:
SqsTemplate
SqsTemplate
is an higher level abstraction on the top of SqsAsyncClient
for sending and receiving messages imperatively:
SendResult<String> result = template.send(to -> to.queue("myQueue")
.payload("myPayload")
.header("myHeaderName", "myHeaderValue")
.headers(Map.of("myOtherHeaderName", "myOtherHeaderValue"))
.delaySeconds(10)
);
Go to reference documentation for more details.
S3 URL signing
S3Template
integrates now with S3Presigner
for creating signed URLs
URL signedGetUrl = s3Template.createSignedGetUrl("bucket_name", "file.txt", Duration.ofMinutes(5));
Go to reference documentation for more details.
Secrets Manager
Secrets Manager integration now supports binary secrets and allows setting properties prefix to avoid collision with other property sources.
spring.config.import=optional:aws-secretsmanager:/secrets/database-secrets?prefix=db.
Go to reference documentation for more details.
What's Changed
SQS
- Remove ReceiveMessageRequestId from Standard SQS (#529) by @tomazfernandes in #586
- Replace singletonList(null) in BatchAckProcessor (#584) by @tomazfernandes in #585
- Add Queue to SQS Container Task Executor (#580) by @tomazfernandes in #581
- Separate AckResult and Component TaskExecutors (#582) by @tomazfernandes in #583
- Abstract ContainerOptions (#598) by @tomazfernandes in #599
- Add option to resolve sqs queue by ARN in SqsListener by @techadri in #634
- Add SqsTemplate by @tomazfernandes in #597
- Add Acknowledgement Shutdown Timeout (#631) by @tomazfernandes in #632
- Add SQS Sample (#508) by @tomazfernandes in #587
- Fix SQS autoconfiguration when SQS module is not on the classpath. by @maciejwalkowiak in #635
S3
- Add getLocation method to S3Resource. by @maciejwalkowiak in #611
- feat: S3PathMatchingResourcePatternResolver 3.x.x by @klopfdreh in #558
- Basic s3 signed URL implementation by @Belair34 in #620
- Upgrade AWS SDK & Transfer Manager by @maciejwalkowiak in #612
DynamoDB
- Add documentation on how to use DynamoDB integration with Devtools. by @maciejwalkowiak in #615
Secrets Manager
- #576 Ensure that property source names are unique by @thorntonrp in #589
- Add option to set a property prefix on Secrets Manager property sources by @maciejwalkowiak in #622
- Introduce SecretBinary type for SecretsManager by @MatejNedic in #613
Core
Other
- Update link to 3.0.0-M3 by @rajadilipkolli in #549
- ci: add jdk 19 on build by @mcruzdev in #550
- Normalize Maven Variables by @AlekSimpson in #605
Feedback
We are aware that 3.0 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
- @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
Full Changelog: v3.0.0-M3...v3.0.0-RC1
2.4.3
What's Changed
- Auto-configure an async SNS client by @chrylis in #574
- Add option to resolve SQS queue by ARN by @techadri in #619
- Add option to set a property prefix on Secrets Manager property sources for 2.4.x by @snigdhasjg in #630
- Load secret as string if json parse fails by @snigdhasjg in #638
- Upgrade dependencies by @maciejwalkowiak in #641
Big thanks to all contributors!
π https://docs.awspring.io/spring-cloud-aws/docs/2.4.3/reference/html/index.html
New Contributors
- @chrylis made their first contribution in #574
- @snigdhasjg made their first contribution in #630
Full Changelog: v2.4.2...v2.4.3
v3.0.0-M3
Spring Cloud AWS 3.0.0 M3 is the first release compatible with Spring Boot 3.0. At the same time, there is no compatibility anymore with Spring Boot 2.x.
The most notable changes:
- Migrate to Spring Boot 3.0 by @maciejwalkowiak in #503
- Sending SMS through SNS by @MatejNedic in #457
- Auto-Reload for
SecretsManager
&ParameterStore
property sources by @maciejwalkowiak in #536
π https://docs.awspring.io/spring-cloud-aws/docs/3.0.0-M3/reference/html/index.html
Full Changelog: v3.0.0-M2...v3.0.0-M3
Big thanks to all contributors!
Other changes
- Back to snapshots. by @maciejwalkowiak in #501
- Add links to API docs in readme. by @maciejwalkowiak in #504
- Remove legacy JDBC module. by @maciejwalkowiak in #505
- Generate Jacoco report and send to SonarCloud with GH action. by @maciejwalkowiak in #362
- Clean up
pom.xml
by @maciejwalkowiak in #509 - Upgrade Spring Cloud to 3.1.3 by @maciejwalkowiak in #510
- SNS SMS support by @MatejNedic in #457
- Upgrade Localstack to 1.1.0 by @maciejwalkowiak in #511
- Do not use deprecated methods from
testcontainers-localstack
. by @maciejwalkowiak in #512 - Add
package-info.java
to DynamoDB auto-configuration. by @maciejwalkowiak in #513 - Polish. by @maciejwalkowiak in #514
- Remove
spring-cloud-aws-starters
module and refer each starter individually from the rootpom.xml
. by @maciejwalkowiak in #516 - Add spring-cloud-aws-starter-metrics to dependencies by @eddumelendez in #522
- Fixes table formatting issue by @rajadilipkolli in #517
- Docs update for S3 and ParameterStore starter coordinates. by @sivaprasadreddy in #525
- Updated labeler.yml according to new modules and package structure. by @sivaprasadreddy in #526
- Adds aws starter for RegionProviderAutoConfiguration by @rajadilipkolli in #530
- Fix upgrading to Spring Boot 3 & Java 17. by @maciejwalkowiak in #539
- Upgrade AWS SDK versions. by @maciejwalkowiak in #541
- Upgrade Testcontainers to 1.17.5. by @maciejwalkowiak in #542
- Fix injecting
SnsTemplate
andSnsSmsTemplate
beans. by @maciejwalkowiak in #543 - Upgrade Localstack to 1.2.0 by @rajadilipkolli in #535
- Auto-Reload for
SecretsManager
&ParameterStore
property sources by @maciejwalkowiak in #536 - Reformat code. by @maciejwalkowiak in #546
- Replace
@AutoConfigureMetrics
with@AutoConfigureObservability
. by @maciejwalkowiak in #545 - Upgrade AWS SDKs to
2.18.0
and1.12.326
. by @maciejwalkowiak in #547 - Set version to 3.0.0-M3 by @maciejwalkowiak in #548
New Contributors
- @rajadilipkolli made their first contribution in #517
Full Changelog: v3.0.0-M2...v3.0.0-M3
3.0.0-M2
M2 is the next milestone in our journey to rewrite Spring Cloud AWS to use AWS SDK v2.
The most important changes since M1:
SQS
Completely rewritten SQS integration π₯ #374:
- auto-configuration for
SqsAsyncClient
- support for
@SqsListener
- ability to create SQS listener with simple lambda without annotation
- support for batch listeners
- support for FIFO queues
@SqsTest
annotation for slice testing of SQS listeners
SqsTemplate
for sending messages will be added in M3.
DynamoDB
New integration #339 π
- auto-configuration for
DynamoDbClient
DynamoDbTemplate
simplifying integration with DynamoDB Enhanced Client- DAX support
CloudWatch
- auto-configuration for
micrometer-registry-cloudwatch2
#237
S3
Improvement to S3Resource
:
- Add Ability to get metadata via S3Resource #451
Improvements to cross-region S3 client:
- Read bucket region from redirect header #453
- Use status code instead of message to detect region change #459
π https://docs.awspring.io/spring-cloud-aws/docs/3.0.0-M2/reference/html/index.html
Full Changelog: v3.0.0-M1...v3.0.0-M2
Big thanks to all contributors!
What's Changed
- Format code on
make build
by @maciejwalkowiak in #430 - ci: update java 8 version by @mcruzdev in #435
- fix: fix upload-docs workflow by @mcruzdev in #438
- Dynamodb autoconfiguration by @MatejNedic in #339
- Add cloudwatch metrics auto-configuration with aws sdk v2 by @eddumelendez in #237
- Add Ability to get metadata via S3Resource by @sis-yoshiday in #451
- Use status code instead of message to detect region change by @fjmacagno in #459
- Add DynamoDB Accelerator (DAX) integration by @MatejNedic in #448
- Read bucket region from redirect header by @fjmacagno in #453
- CloudWatch docs by @eddumelendez in #477
- Add migration docs from 2.x to 3.x by @eddumelendez in #478
- Simplify generator path calculation by @fjmacagno in #480
- Simplify Region and Credentials providers autoconfigurations. by @maciejwalkowiak in #484
- Add SQS Support by @tomazfernandes in #374
- Port
SqsTest
to new SQS implementation. by @maciejwalkowiak in #493 - Upgrade AWS SDK. by @maciejwalkowiak in #497
- Use Localstack and
cdklocal
in samples. by @maciejwalkowiak in #381
New Contributors
- @sis-yoshiday made their first contribution in #451
- @fjmacagno made their first contribution in #459
- @tomazfernandes made their first contribution in #374
Full Changelog: v3.0.0-M1...v3.0.0-M2