# 🍃 Spring Cloud AWS

Simplifies using AWS managed services in a Spring and Spring Boot applications.

For a deep dive into the project, refer to the Spring Cloud AWS Reference documentation:

- [Spring Cloud AWS 2.4.0](https://docs.awspring.io/spring-cloud-aws/docs/2.4.0/reference/html/index.html)
- [Spring Cloud AWS 2.3.4](https://docs.awspring.io/spring-cloud-aws/docs/2.3.4/reference/html/index.html)

## Compatibility with Spring Project Versions

This project has dependency and transitive dependencies on Spring Projects. The table below outlines the versions of Spring Cloud, Spring Boot and Spring Framework versions that are compatible with certain Spring Cloud AWS version.

| Spring Cloud AWS          | Spring Cloud                                                                                                          | Spring Boot  | Spring Framework | AWS Java SDK |
|---------------------------|-----------------------------------------------------------------------------------------------------------------------|--------------|------------------|--------------|
| 2.3.x (maintenance mode)  | [2020.0.x](https://github.com/spring-cloud/spring-cloud-release/wiki/Spring-Cloud-2020.0-Release-Notes) (3.0/Illford) | 2.4.x, 2.5.x | 5.3.x            | 1.x          |
| 2.4.x (maintenance mode)  | [2021.0.x](https://github.com/spring-cloud/spring-cloud-release/wiki/Spring-Cloud-2021.0-Release-Notes) (3.1/Jubilee) | 2.6.x        | 5.3.x            | 1.x          |
| 3.0.x (under development) | [2021.0.x](https://github.com/spring-cloud/spring-cloud-release/wiki/Spring-Cloud-2021.0-Release-Notes) (3.1/Jubilee) | 2.6.x        | 5.3.x            | 2.x          |

## Supported AWS integrations

| AWS Service     | Spring Cloud AWS 2.x | Spring Cloud AWS 3.x                                                       |
|-----------------|----------------------|----------------------------------------------------------------------------|
| S3              | ✅                    | ✅                                                                          |
| SNS             | ✅                    | [Under development](https://github.com/awspring/spring-cloud-aws/pull/276) |
| SES             | ✅                    | ✅                                                                          |
| Parameter Store | ✅                    | ✅                                                                          |
| Secrets Manager | ✅                    | ✅                                                                          |
| SQS             | ✅                    | TODO                                                                       |
| RDS             | ✅                    | TODO                                                                       |
| EC2             | ✅                    | ❌                                                                          |
| ElastiCache     | ✅                    | ❌                                                                          |
| CloudFormation  | ✅                    | ❌                                                                          |

Note, that Spring provides support for other AWS services in following projects:

- [Spring Cloud Stream Binder AWS Kinesis](https://github.com/spring-cloud/spring-cloud-stream-binder-aws-kinesis)
- [Spring Cloud Config Server](https://github.com/spring-cloud/spring-cloud-config) supports AWS Parameter Store and Secrets Manager
- [Spring Integration for AWS](https://github.com/spring-projects/spring-integration-aws)

## Current Efforts

We are working on Spring Cloud AWS 3.0 - a major release that includes moving to AWS SDK v2 and re-thinking most of the integrations.

## Checking out and building

To check out the project and build it from source, do the following:

```
git clone https://github.com/awspring/spring-cloud-aws.git
cd spring-cloud-aws
./mvnw package
```

To build and install jars into your local Maven cache:

```
./mvnw install
```

For faster builds, we recommend using [Maven Daemon](https://github.com/apache/maven-mvnd) and using following commands:

Build:

```
make build
```

Clean:

```
make clean
```

Format code:

```
make format
```

## Building documentation

Documentation can be built by activating the `docs` profile in the maven build.

```
./mvnw package -Pdocs
```

It generates:

- reference documentation in `docs/target/generated-docs/`
- API docs in `target/site/`

## Getting in touch

- [Discussions on Github](https://github.com/awspring/spring-cloud-aws/discussions) - the best way to discuss anything Spring Cloud AWS related

Or reach out directly to individual team members:

- Maciej Walkowiak [Twitter](https://twitter.com/maciejwalkowiak)
- Eddú Meléndez [Twitter](https://twitter.com/EdduMelendez)
- Matej Nedic [Twitter](https://twitter.com/MatejNedic1)
