spring-cloud-aws

The New Home for Spring Cloud AWS

APACHE-2.0 License

Stars
790
Committers
158

Bot releases are hidden (Show)

spring-cloud-aws - 3.2.0 M1 Latest Release

Published by maciejwalkowiak 7 months ago

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:

Spring Modulith

SQS and SNS integration for Spring Modulith's Externalized Events has been migrated to Spring Cloud AWS:

SQS

S3

Core

Secrets Manager

SNS

New Contributors

Full Changelog: https://github.com/awspring/spring-cloud-aws/compare/v3.1.1...v3.2.0-M1

spring-cloud-aws - 3.1.1

Published by maciejwalkowiak 7 months ago

Reference documentation

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

What's Changed

SQS

Simple Email Service`

Parameter Store and Secrets Manager

DynamoDb

Core

Dependency Upgrades

New Contributors

Big thanks to all contributors! 🙂

Full Changelog: https://github.com/awspring/spring-cloud-aws/compare/v3.1.0...v3.1.1

spring-cloud-aws - 3.1.0

Published by maciejwalkowiak 10 months ago

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

New Contributors

spring-cloud-aws - 3.0.4

Published by maciejwalkowiak 10 months ago

Reference documentation

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

What's Changed

DynamoDB

S3

Core

SQS

Maintenance

New Contributors

Big thanks to all contributors! 🙂

Full Changelog: https://github.com/awspring/spring-cloud-aws/compare/v3.0.3...v3.0.4

spring-cloud-aws - 3.0.3

Published by maciejwalkowiak 12 months ago

Reference documentation

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

What's Changed

SQS

S3

Parameter Store

Secrets Manager

SNS

Core

Documentation

Dependency Updates

New Contributors

Full Changelog: https://github.com/awspring/spring-cloud-aws/compare/v3.0.2...v3.0.3

spring-cloud-aws - 3.0.2

Published by MatejNedic about 1 year ago

Reference documentation

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

What's Changed

SQS

S3

New Contributors

Full Changelog: https://github.com/awspring/spring-cloud-aws/compare/v3.0.1...v3.0.2

spring-cloud-aws - 3.0.1

Published by maciejwalkowiak over 1 year ago

Reference documentation

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

What's Changed

S3

getURL() method on S3Resource respects now spring.cloud.aws.s3.path-style-access-enabled property. For example, for bucket 's3resourcetestand keynew-file.txt`:

SQS

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

Samples

New Contributors

Full Changelog: https://github.com/awspring/spring-cloud-aws/compare/v3.0.0...v3.0.1

spring-cloud-aws - 3.0.0

Published by maciejwalkowiak over 1 year ago

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

SQS

S3

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

Big thanks to all contributors! 🙂

Full Changelog: https://github.com/awspring/spring-cloud-aws/compare/v2.4.0...v3.0.0

spring-cloud-aws - 3.0.0-RC2

Published by maciejwalkowiak over 1 year ago

Reference documentation

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

What's Changed

S3

SNS

Secrets Manager & Parameter Store

SQS

DynamoDB

Other

New Contributors

Big thanks to all contributors! 🙂

Full Changelog: https://github.com/awspring/spring-cloud-aws/compare/v3.0.0-RC1...v3.0.0-RC2

spring-cloud-aws - 2.4.4

Published by maciejwalkowiak over 1 year ago

What's Changed

New Contributors

Full Changelog: https://github.com/awspring/spring-cloud-aws/compare/v2.4.3...v2.4.4

spring-cloud-aws - 3.0.0-RC1

Published by maciejwalkowiak over 1 year ago

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

S3

DynamoDB

Secrets Manager

Core

Other

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

Full Changelog: https://github.com/awspring/spring-cloud-aws/compare/v3.0.0-M3...v3.0.0-RC1

spring-cloud-aws - 2.4.3

Published by maciejwalkowiak over 1 year ago

What's Changed

Big thanks to all contributors!

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

New Contributors

Full Changelog: https://github.com/awspring/spring-cloud-aws/compare/v2.4.2...v2.4.3

spring-cloud-aws - v3.0.0-M3

Published by maciejwalkowiak almost 2 years ago

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:

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

Full Changelog: https://github.com/awspring/spring-cloud-aws/compare/v3.0.0-M2...v3.0.0-M3

Big thanks to all contributors!

Other changes

New Contributors

Full Changelog: https://github.com/awspring/spring-cloud-aws/compare/v3.0.0-M2...v3.0.0-M3

spring-cloud-aws - 3.0.0-M2

Published by maciejwalkowiak about 2 years ago

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 🚀

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: https://github.com/awspring/spring-cloud-aws/compare/v3.0.0-M1...v3.0.0-M2

Big thanks to all contributors!

What's Changed

New Contributors

Full Changelog: https://github.com/awspring/spring-cloud-aws/compare/v3.0.0-M1...v3.0.0-M2

spring-cloud-aws - 2.4.2

Published by maciejwalkowiak about 2 years ago

  • Upgrade AWS SDK to 1.12.266. #461 @maciejwalkowiak
  • Fail on startup if sqs queue does not exist #394 @boolivar
  • Reduce amount of logs in Parameter Store tests. #395 @maciejwalkowiak

Big thanks to all contributors!

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

spring-cloud-aws - 3.0.0-M1

Published by maciejwalkowiak over 2 years ago

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, provides simple to use abstractions and also works much better with Kotlin.

Only a subset of integrations have been migrated in M1:

  • S3
  • SES
  • SNS
  • Secrets Manager
  • Parameter Store

We strongly recommend checking out completely rewritten reference documentation for a deep dive into each integration including code samples:

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

Core

Dropped support for XML configuration and @EnableXXX annotations. Spring Cloud AWS can be used either with Spring Boot auto-configurations, or beans have to be created manually.

New properties prefix

All Spring Cloud AWS related properties have moved from cloud.aws to spring.cloud.aws prefix.

Endpoint configuration

Endpoint used by all integrations can be configured through a property:

spring.cloud.aws.endpoint=http://localhost:4566

Endpoint used by an individual integration can be also defined per integration:

spring.cloud.aws.s3.endpoint=http://localhost:4566

This is especially useful when Localstack is used instead of real AWS.

Credentials and region configuration

Credentials and region are resolved through the new interfaces from AWS SDK v2 for Java: software.amazon.awssdk.auth.credentials.AwsCredentialsProvider and software.amazon.awssdk.regions.providers.AwsRegionProvider.

It is possible to configure both through properties. In special cases, users can provide custom implementations of these interfaces to opt-out from ones that are auto-configured. Check the reference documentation for more details.

Nullability annotations

Every class field, method parameter and return value is annotated with @NonNull or @Nullable annotation, making it easier to use with null safe languages like Kotlin.

AWS Client Builder Configurers

AwsClientBuilderConfigurer simplifies applying same configuration for endpoint, region and credentials to user defined AWS clients beans:

import io.awspring.cloud.autoconfigure.core.AwsClientBuilderConfigurer;
...

@Bean
TextractClient textractClient(AwsClientBuilderConfigurer configurer) {
    return configurer.configure(TextractClient.builder()).build();
}

AWS Client Customizers

AwsClientCustomizer simplifies customizing AWS clients created by integrations without overwriting complete beans:

import io.awspring.cloud.autoconfigure.core.AwsClientCustomizer;
...

@Component
class S3AwsClientClientConfigurer implements AwsClientCustomizer<S3ClientBuilder> {
	@Override
	public ClientOverrideConfiguration overrideConfiguration() {
		...
	}

	@Override
	public SdkHttpClient httpClient() {
		...
	}
}

Note that AwsClientCustomizer is a parameterized type, and the type determines to which client customization gets applied.

S3

  • all S3 related classes have moved to io.awspring.cloud.s3 package.
  • SimpleStorageResource has been renamed to S3Resource
  • S3 client can be configured with spring.cloud.aws.s3 properties
  • dropped support for ResourcePatternResolver.

Cross-Region S3 client

S3Client implementation provided by Spring Cloud AWS can access buckets in any region. When accessed bucket is in other region than the one provided for S3 auto-configuration, the CrossRegionS3Clients handles redirects sent by S3 transparently.

Output Streams

S3 integration comes with three implementations of the OutputStream used under the hood by S3Resource for writing data to S3.

  • InMemoryBufferingS3OutputStream (default) - buffers content of the uploaded file in memory and uploads to S3 using multipart upload
  • DiskBufferingS3OutputStream - saves uploaded file to temporary folder on disk and uploads to S3 in single chunk
  • TransferManagerS3OutputStream - uses experimental Transfer Manager to upload files to S3. Requires adding a dependency to software.amazon.awssdk:s3-transfer-manager

To use different output stream than one provided by auto-configuration, define a bean of type S3OutputStreamProvider - either with custom implementation or one of: DiskBufferingS3OutputStreamProvider, TransferManagerS3OutputStreamProvider, InMemoryBufferingS3OutputStreamProvider.

S3Template

S3Template is a new class that simplifies performing common operations on S3 buckets and S3 objects. It also supports reading and persisting Java objects to S3. Spring Cloud AWS provides Jackson based Jackson2JsonS3ObjectConverter which serialized persisted objects into JSON files. Custom object converted can be provided by defining a bean of type S3ObjectConverter.

Object Metadata Support

Both S3Resource and S3Template support setting object metadata through a builder-like object ObjectMetadata.

Content-Type Resolution

If uploaded file to S3 does not have contentType metadata property set, both S3Resource and S3Template will resolve content type through S3ObjectContentTypeResolver. The default implementation resolves content type by file extension. The framework provides a comprehensive support for 817 file extensions.

SES

SES integration does not bring any new features in comparison to what's offered in version 2.4.1.
SES integration can be configured using properties with spring.cloud.aws.ses prefix.

SNS

On top of what's been offered in 2.4.1, SNS integration provides a simple interfaces for sending notifications with custom payload and headers using SnsOperations#sendNotification method and SnsNotification object.

Because SNS Message Manager has not been migrated to AWS SDK v2, we had to drop support for message signature validation. We hope AWS finishes migration before Spring Cloud AWS reaches 3.0 GA.

SNS integration can be configured using properties with spring.cloud.aws.sns prefix.

Secrets Manager

  • dropped support for loading properties from Secrets Manager using Spring Cloud Bootstrap - only loading through spring.config.import=aws-secretsmanager is now possible
  • added support for loading both secrets containing JSON and plain text
  • simplified using custom SecretsManagerClient

Secrets Manager integration can be configured using properties with spring.cloud.aws.secretsmanager prefix.

Parameter Store

  • dropped support for loading properties from Parameter Store using Spring Cloud Bootstrap - only loading through spring.config.import=aws-parameterstore is now possible
  • simplified using custom SsmClient

Parameter Store integration can be configured using properties with spring.cloud.aws.parameterstore prefix.

Reference Documentation

Reference documentation has been rewritten with simplicity and "straight to the point" attitude.

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

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

Full Changelog: https://github.com/awspring/spring-cloud-aws/compare/v2.4.1...v3.0.0-M1

spring-cloud-aws - 2.3.5

Published by maciejwalkowiak over 2 years ago

This release backports a fix from 2.4.1 to 2.3.x for Spring Boot 2.4 & 2.5 compatibility

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

spring-cloud-aws - 2.4.1

Published by maciejwalkowiak over 2 years ago

  • Relax prefix validation rules in Parameter Store and Secrets Manager #303 @MatejNedic
  • Configure signing region when endpoint is overwritten. #272 @maciejwalkowiak
  • Mention Spring Integration AWS and Spring Cloud Stream AWS Kinesis Binder projects in docs #288 @maciejwalkowiak
  • Adds array properties support to Parameter Store. #248 @rmpestano
  • Upgrade AWS SDK to 1.12.195 #304 @maciejwalkowiak

Big thanks to all contributors!

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

spring-cloud-aws - 2.4.0

Published by MatejNedic over 2 years ago

This version brings compatibility with Spring Boot 2.6 and few enhancements:

SQS

Add @SqsTest annotation to simplify SQS integration testing (https://github.com/awspring/spring-cloud-aws/pull/235) @maciejwalkowiak
Complete example on how to test SQS listener with @SqsTest, Localstack and Testcontainers.

SNS

Verify SNS messages in HTTP subscription mode (https://github.com/awspring/spring-cloud-aws/pull/240) @MatejNedic @WtfJoke @maciejwalkowiak

Core

Upgrade to Spring Cloud Build commons to 3.1.0 (https://github.com/awspring/spring-cloud-aws/pull/211) @spencergibb

Big thanks to all contributors!

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

spring-cloud-aws - 2.3.4

Published by maciejwalkowiak over 2 years ago

This version brings several bug fixes and small improvements:

Parameter Store & Secrets Manager

  • Fix logging for Parameter Store and Secrets Manager integrations (#229) @maciejwalkowiak
  • Allow empty prefix in Secrets Manager and Parameter Store integrationns (#233, #216) @MatejNedic @menneske2
  • Fix property loading order for Parameter Store and Secrets Manager when used with Spring Cloud Bootstrap (#225) @maciejwalkowiak

SQS

  • Autoconfigure QueueMessagingTemplate (#230) @maciejwalkowiak
  • Fix handling errors when processing SQS FIFO queue (#192) @fernandomoraes
  • Ensure that SqsMessageDeletionPolicy is NO_REDRIVE if one provided by parameter is null. (#231) @maciejwalkowiak

Core

  • Upgrade AWS SDK version to 1.12.132 (#218) @mahdiarn

Big thanks to all contributors!

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

Package Rankings
Top 7.95% on Repo1.maven.org
Badges
Extracted from project README
Open in Gitpod
Related Projects