Skip to content

Release Notes

Maciej Walkowiak edited this page Feb 11, 2021 · 4 revisions

Spring Cloud AWS 2.3 RC2 Release Notes

Spring Cloud AWS 2.3 is compatible with Spring Boot 2.4 and Spring Cloud 2020.0. It's a first release in the new community driven organisation awspring - which means that module group ids and package names have changed from org.springframework.cloud.aws to io.awspring.cloud.

Find most important changes organised by Spring Cloud AWS module:

Core

Configurable ClientConfiguration

ClientConfiguration used when initializing AWS clients, can be now defined by creating a bean with name "com.amazonaws.ClientConfiguration.BEAN_NAME".

It’s also possible to provide ClientConfiguration for particular integration by defining a bean of type ClientConfiguration and a name specific to the integration, for example for SQS client, the bean name must be sqsClientConfiguration.

Read More

Speed-up Startup Time

In order to speed up startup times applications that do not use EC2 instance data, ContextInstanceDataAutoConfiguration is disabled by default. To enable it, set cloud.aws.instance.data.enabled to true.

AWS SDK Version Upgrade

AWS SDK has been upgraded to 1.11.951

Configurable endpoint for each integration

For each integrated AWS service you can configure Spring Cloud AWS to use a custom endpoint using configuration properties. For example:

cloud.aws.s3.endpoint=http://localhost:4566
cloud.aws.sqs.endpoint=http://localhost:4566
cloud.aws.rds.endpoint=http://localhost:4566

Using custom endpoint can be especially useful when using Localstack in integration tests.

Deprecate XML configuration

XML Configuration is now deprecated and is going to be removed in the major version upgrade.

Configurable region for each integration

In addition to global region configuration, each integration can have a different region set statically. Read More

Deprecate @EnableXXX annotations

@EnableXXX annotations have been deprecated. We recommend using Spring Boot auto-configurations.

Simplify disabling integrations

Each service can be now enabled/disabled with enabled property.

Simplify SDK configuration

DefaultAWSCredentialsProvider and DefaultAWSRegionProviderChain are used now by default. cloud.aws.credentials.use-default-aws-credentials-chain and cloud.aws.region.use-default-aws-region-chain properties were dropped.

CloudFormation

To simplify project setup for applications that do not use CloudFormation support, CloudFormation related auto-configurations have been disabled by default. To enable CloudFormation support in Spring Cloud AWS you must add following dependency that will trigger ContextStackAutoConfiguration:

<dependency>
    <groupId>com.amazonaws</groupId>
    <artifactId>aws-java-sdk-cloudformation</artifactId>
</dependency>

SES

SES support has been extracted from context module to separate spring-cloud-aws-ses module. There is also a dedicated starter spring-cloud-aws-ses-starter.

Cognito

Spring Cloud AWS comes with basic support for AWS Cognito, simplifying configuring OAuth2. Read More

Parameter Store

  1. Support loading properties through spring.config.import introduced in Spring Cloud 2020.0 Read More
  2. Dropped the dependency to javax.validation:validation-api

Secrets Manager

  1. Support loading properties through spring.config.import introduced in Spring Cloud 2020.0 Read More
  2. Removed the dependency to auto-configure module #526
  3. Dropped the dependency to javax.validation:validation-api
  4. Allow Secrets Manager prefix without "/" in the front #736

SQS

  1. SimpleMessageListenerContainer#isQueueRunning method is now visible to extending classes. #350
  2. Added support for SQS custom data types #410
  3. Added support for native SQS messages in SqsListener argument #295
  4. Added global configuration for message deletion policy #188
  5. Fixed queue listener graceful shutdown by increasing queue stop time to 20 seconds. queueStopTimeout can be configurable via SimpleMessageListenerContainerFactory #504 #507
  6. Added support for primitives and no specific data type in SQS message attributes. #221 #374
  7. Added support for resolving SqsMessageHeaders in SqsListener. Added ApproximateFirstReceiveTimestamp, ApproximateReceiveCount and SentTimestamp headers #296
  8. SQS listeners by default instead of creating custom ObjectMapper instance, use one present in the application context #533, #522, #540
  9. Add support for SQS FIFO queues #40

S3

SimpleStorageResource sets content-type property on the S3 object metadata #262

SNS

  1. @NotificationMessageMapping handles properly special characters #645
  2. Support String Array SNS messageAttributeDataType #368

RDS

Make RDS instance name configuration more flexible. For example, for instance name test, instead of setting cloud.aws.rds.test.username=user property you must now set:

cloud.aws.rds.instances[0].db-instance-identifier=test
cloud.aws.rds.instances[0].username=user

#495

CloudWatch

Removed spring-cloud-aws-actuator module. Instead we recommend using the dependency to micrometer-registry-cloudwatch directly. #571