暫無描述

Maciej Walkowiak 875ac688d8 Set version to 2.3.6-SNAPSHOT. (#367) 2 年之前
.github d6861907a2 Add Matej to Codeowners. 2 年之前
.idea 607785e24b prepared for jdk11 6 年之前
.mvn 7ade29945b Upgrade Maven wrapper to 3.8.3 (#197) 3 年之前
docs 875ac688d8 Set version to 2.3.6-SNAPSHOT. (#367) 2 年之前
spring-cloud-aws-autoconfigure 875ac688d8 Set version to 2.3.6-SNAPSHOT. (#367) 2 年之前
spring-cloud-aws-context 875ac688d8 Set version to 2.3.6-SNAPSHOT. (#367) 2 年之前
spring-cloud-aws-core 875ac688d8 Set version to 2.3.6-SNAPSHOT. (#367) 2 年之前
spring-cloud-aws-dependencies 875ac688d8 Set version to 2.3.6-SNAPSHOT. (#367) 2 年之前
spring-cloud-aws-integration-test 875ac688d8 Set version to 2.3.6-SNAPSHOT. (#367) 2 年之前
spring-cloud-aws-jdbc 875ac688d8 Set version to 2.3.6-SNAPSHOT. (#367) 2 年之前
spring-cloud-aws-messaging 875ac688d8 Set version to 2.3.6-SNAPSHOT. (#367) 2 年之前
spring-cloud-aws-parameter-store-config 875ac688d8 Set version to 2.3.6-SNAPSHOT. (#367) 2 年之前
spring-cloud-aws-samples 875ac688d8 Set version to 2.3.6-SNAPSHOT. (#367) 2 年之前
spring-cloud-aws-secrets-manager-config 875ac688d8 Set version to 2.3.6-SNAPSHOT. (#367) 2 年之前
spring-cloud-aws-ses 875ac688d8 Set version to 2.3.6-SNAPSHOT. (#367) 2 年之前
spring-cloud-starter-aws 875ac688d8 Set version to 2.3.6-SNAPSHOT. (#367) 2 年之前
spring-cloud-starter-aws-jdbc 875ac688d8 Set version to 2.3.6-SNAPSHOT. (#367) 2 年之前
spring-cloud-starter-aws-messaging 875ac688d8 Set version to 2.3.6-SNAPSHOT. (#367) 2 年之前
spring-cloud-starter-aws-parameter-store-config 875ac688d8 Set version to 2.3.6-SNAPSHOT. (#367) 2 年之前
spring-cloud-starter-aws-secrets-manager-config 875ac688d8 Set version to 2.3.6-SNAPSHOT. (#367) 2 年之前
spring-cloud-starter-aws-ses 875ac688d8 Set version to 2.3.6-SNAPSHOT. (#367) 2 年之前
.editorconfig 0d3d4ea139 URL Cleanup 5 年之前
.gitignore b01ae16049 Fix samples (#43) 3 年之前
.settings.xml 47e503c9e6 Reformat code with Spring JavaFormat 0.0.25 4 年之前
.springformat 607785e24b prepared for jdk11 6 年之前
.travis.yml 82423c8e19 Made checkstyle default 5 年之前
LICENSE.txt 0eef63689e URL Cleanup 5 年之前
README.adoc fee29dc1ee Update externally referenced fragment in readme. 3 年之前
SECURITY.md c63f77ff5f Add email address to report vulnerabilities in security.md. 2 年之前
mvnw a6581776c1 Update Maven wrapper to Maven 3.6.3 (#64) 3 年之前
mvnw.cmd 7ade29945b Upgrade Maven wrapper to 3.8.3 (#197) 3 年之前
pom.xml 875ac688d8 Set version to 2.3.6-SNAPSHOT. (#367) 2 年之前

README.adoc

////
DO NOT EDIT THIS FILE. IT WAS GENERATED.
Manual changes to this file will be lost when it is generated again.
Edit the files in the src/main/asciidoc/ directory instead.
////


= 🍃 Spring Cloud for Amazon Web Services

Spring Cloud AWS, part of the Spring Cloud umbrella project, eases the integration with hosted Amazon Web Services. It offers a convenient way to interact with AWS provided services using well-known Spring idioms and APIs, such as the messaging or caching API. Developers can build their application around the hosted services without having to care about infrastructure or maintenance.

* http://awspring.io/[Official Website]

* https://docs.awspring.io/spring-cloud-aws/docs/2.3.0-RC1/reference/html/index.html[Reference Guide]

= 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
-----------

= Building documentation

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

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

= Getting in touch

* https://github.com/awspring/spring-cloud-aws/discussions[Discussions on Github] - the best way to discuss anything Spring Cloud AWS related
* https://gitter.im/spring-cloud/spring-cloud-aws[Spring Cloud AWS channel on Gitter]

Or reach out directly to individual team members:

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

= Using IntelliJ IDEA

Spring Cloud AWS development is done with
https://www.jetbrains.com/idea/[IntelliJ IDEA]. In order to create all
https://www.jetbrains.com/idea/[IntelliJ IDEA] project files, you have to
import the file within idea as a maven project.

_Note:_ Please make sure to revert all changes in the .idea config file
directory, as the maven plugin overwrites the configuration files kept
in the scm.

= Running integration tests

Spring Cloud AWS contains a test-suite which runs integration tests to
ensure compatibility with the Amazon Web Services. In order to run the
integration tests, the build process has to create different resources
on the Amazon Webservice platform (Amazon EC2 instances, Amazon RDS
instances, Amazon S3 Buckets, Amazon SQS Queues). Creating these
resources takes time and costs money, because every instance creation is
charged with a one hour usage. Therefore Spring Cloud AWS does not
execute the integration tests by default.

In order to run integration tests you must prepare three properties named accessKey, secretKey and rdsPassword. These two
properties accessKey and secretKey are account/user specific and should
never be shared to anyone. To retrieve these settings you have to open
your account inside the AWS console and retrieve them through the
https://portal.aws.amazon.com/gp/aws/securityCredentials[Security
Credentials Page]. _Note:_ In general we recommend that you use an
https://aws.amazon.com/iam/[Amazon IAM] user instead of the account
itself. The last password rdsPassword is used to access the database
inside the integration tests. This password has a minimum length of 8
characters.

Also you must prepare the sender and recipient mail addresses to test the
https://aws.amazon.com/ses/[Amazon Simple E-Mail Service]. These two
addresses must be verified for the Amazon SES Service.

To build with the integration tests you must execute

-----------------------------------------------------------------------------------------------------
mvn verify -Daws-integration-tests.access-key= -Daws-integration-tests.secret-key= -DrdsPassword= -DsenderAddress= -DrecipientAddress=
-----------------------------------------------------------------------------------------------------

The integration test will create an
https://aws.amazon.com/de/cloudformation/[Amazon Web Services
CloudFormation] stack and execute the tests. The stack is destroyed
after executing the tests (either successful or failed) to ensure that
there are no unnecessary costs.

= Costs of integration tests

The costs for one integration test run should not be more than 0.40 $
per hour (excl. VAT).

= Developing using Amazon Web Services

During the development, it might be time-consuming to run the integration
tests regularly. In order to create a stack only once, and reuse them
for the tests run, you have to create the stack manually using the
template found in /spring-cloud-aws-integration-test/src/test/resources.
You will need to create the stack with the name "IntegrationTestStack"
to ensure that the integration tests will re-use the stack.

== Contributing

:spring-cloud-build-branch: master

Spring Cloud is released under the non-restrictive Apache 2.0 license,
and follows a very standard Github development process, using Github
tracker for issues and merging pull requests into master. If you want
to contribute even something trivial please do not hesitate, but
follow the guidelines below.

=== Sign the Contributor License Agreement
Before we accept a non-trivial patch or pull request we will need you to sign the
https://cla.pivotal.io/sign/spring[Contributor License Agreement].
Signing the contributor's agreement does not grant anyone commit rights to the main
repository, but it does mean that we can accept your contributions, and you will get an
author credit if we do. Active contributors might be asked to join the core team, and
given the ability to merge pull requests.

=== Code of Conduct
This project adheres to the Contributor Covenant https://github.com/spring-cloud/spring-cloud-build/blob/master/docs/src/main/asciidoc/code-of-conduct.adoc[code of
conduct]. By participating, you are expected to uphold this code. Please report
unacceptable behavior to spring-code-of-conduct@pivotal.io.

=== Code Conventions and Housekeeping
None of these is essential for a pull request, but they will all help. They can also be
added after the original pull request but before a merge.

* Use the Spring Framework code format conventions. If you use Eclipse
you can import formatter settings using the
`eclipse-code-formatter.xml` file from the
https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/spring-cloud-dependencies-parent/eclipse-code-formatter.xml[Spring
Cloud Build] project. If using IntelliJ, you can use the
https://plugins.jetbrains.com/plugin/6546[Eclipse Code Formatter
Plugin] to import the same file.
* Make sure all new `.java` files to have a simple Javadoc class comment with at least an
`@author` tag identifying you, and preferably at least a paragraph on what the class is
for.
* Add the ASF license header comment to all new `.java` files (copy from existing files
in the project)
* Add yourself as an `@author` to the .java files that you modify substantially (more
than cosmetic changes).
* Add some Javadocs and, if you change the namespace, some XSD doc elements.
* A few unit tests would help a lot as well -- someone has to do it.
* If no-one else is using your branch, please rebase it against the current master (or
other target branch in the main project).
* When writing a commit message please follow https://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html[these conventions],
if you are fixing an existing issue please add `Fixes gh-XXXX` at the end of the commit
message (where XXXX is the issue number).

=== Checkstyle

Spring Cloud Build comes with a set of checkstyle rules. You can find them in the `spring-cloud-build-tools` module. The most notable files under the module are:

.spring-cloud-build-tools/
----
└── src
   ├── checkstyle
   │   └── checkstyle-suppressions.xml <3>
   └── main
   └── resources
   ├── checkstyle-header.txt <2>
   └── checkstyle.xml <1>
----
<1> Default Checkstyle rules
<2> File header setup
<3> Default suppression rules

==== Checkstyle configuration

Checkstyle rules are *disabled by default*. To add checkstyle to your project just define the following properties and plugins.

.pom.xml
----

true <1>
true
<2>
true
<3>




<4>
io.spring.javaformat
spring-javaformat-maven-plugin

<5>
org.apache.maven.plugins
maven-checkstyle-plugin





<5>
org.apache.maven.plugins
maven-checkstyle-plugin




----
<1> Fails the build upon Checkstyle errors
<2> Fails the build upon Checkstyle violations
<3> Checkstyle analyzes also the test sources
<4> Add the Spring Java Format plugin that will reformat your code to pass most of the Checkstyle formatting rules
<5> Add checkstyle plugin to your build and reporting phases

If you need to suppress some rules (e.g. line length needs to be longer), then it's enough for you to define a file under `${project.root}/src/checkstyle/checkstyle-suppressions.xml` with your suppressions. Example:

.projectRoot/src/checkstyle/checkstyle-suppresions.xml
----

"-//Puppy Crawl//DTD Suppressions 1.1//EN"
"https://www.puppycrawl.com/dtds/suppressions_1_1.dtd">




----

It's advisable to copy the `${spring-cloud-build.rootFolder}/.editorconfig` and `${spring-cloud-build.rootFolder}/.springformat` to your project. That way, some default formatting rules will be applied. You can do so by running this script:

```bash
$ curl https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/.editorconfig -o .editorconfig
$ touch .springformat
```

=== IDE setup

==== Intellij IDEA

In order to setup Intellij you should import our coding conventions, inspection profiles and set up the checkstyle plugin.
The following files can be found in the https://github.com/spring-cloud/spring-cloud-build/tree/master/spring-cloud-build-tools[Spring Cloud Build] project.

.spring-cloud-build-tools/
----
└── src
   ├── checkstyle
   │   └── checkstyle-suppressions.xml <3>
   └── main
   └── resources
   ├── checkstyle-header.txt <2>
   ├── checkstyle.xml <1>
   └── intellij
      ├── Intellij_Project_Defaults.xml <4>
      └── Intellij_Spring_Boot_Java_Conventions.xml <5>
----
<1> Default Checkstyle rules
<2> File header setup
<3> Default suppression rules
<4> Project defaults for Intellij that apply most of Checkstyle rules
<5> Project style conventions for Intellij that apply most of Checkstyle rules

.Code style

image::https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/{spring-cloud-build-branch}/docs/src/main/asciidoc/images/intellij-code-style.png[Code style]

Go to `File` -> `Settings` -> `Editor` -> `Code style`. There click on the icon next to the `Scheme` section. There, click on the `Import Scheme` value and pick the `Intellij IDEA code style XML` option. Import the `spring-cloud-build-tools/src/main/resources/intellij/Intellij_Spring_Boot_Java_Conventions.xml` file.

.Inspection profiles

image::https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/{spring-cloud-build-branch}/docs/src/main/asciidoc/images/intellij-inspections.png[Code style]

Go to `File` -> `Settings` -> `Editor` -> `Inspections`. There click on the icon next to the `Profile` section. There, click on the `Import Profile` and import the `spring-cloud-build-tools/src/main/resources/intellij/Intellij_Project_Defaults.xml` file.

.Checkstyle

To have Intellij work with Checkstyle, you have to install the `Checkstyle` plugin. It's advisable to also install the `Assertions2Assertj` to automatically convert the JUnit assertions

image::https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/{spring-cloud-build-branch}/docs/src/main/asciidoc/images/intellij-checkstyle.png[Checkstyle]

Go to `File` -> `Settings` -> `Other settings` -> `Checkstyle`. There click on the `+` icon in the `Configuration file` section. There, you'll have to define where the checkstyle rules should be picked from. In the image above, we've picked the rules from the cloned Spring Cloud Build repository. However, you can point to the Spring Cloud Build's GitHub repository (e.g. for the `checkstyle.xml` : `https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/spring-cloud-build-tools/src/main/resources/checkstyle.xml`). We need to provide the following variables:

- `checkstyle.header.file` - please point it to the Spring Cloud Build's, `spring-cloud-build-tools/src/main/resources/checkstyle-header.txt` file either in your cloned repo or via the `https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/spring-cloud-build-tools/src/main/resources/checkstyle-header.txt` URL.
- `checkstyle.suppressions.file` - default suppressions. Please point it to the Spring Cloud Build's, `spring-cloud-build-tools/src/checkstyle/checkstyle-suppressions.xml` file either in your cloned repo or via the `https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/spring-cloud-build-tools/src/checkstyle/checkstyle-suppressions.xml` URL.
- `checkstyle.additional.suppressions.file` - this variable corresponds to suppressions in your local project. E.g. you're working on `spring-cloud-contract`. Then point to the `project-root/src/checkstyle/checkstyle-suppressions.xml` folder. Example for `spring-cloud-contract` would be: `/home/username/spring-cloud-contract/src/checkstyle/checkstyle-suppressions.xml`.

IMPORTANT: Remember to set the `Scan Scope` to `All sources` since we apply checkstyle rules for production and test sources.

=== Duplicate Finder

Spring Cloud Build brings along the `basepom:duplicate-finder-maven-plugin`, that enables flagging duplicate and conflicting classes and resources on the java classpath.

==== Duplicate Finder configuration

Duplicate finder is *enabled by default* and will run in the `verify` phase of your Maven build, but it will only take effect in your project if you add the `duplicate-finder-maven-plugin` to the `build` section of the projecst's `pom.xml`.

.pom.xml
[source,xml]
----



org.basepom.maven
duplicate-finder-maven-plugin



----

For other properties, we have set defaults as listed in the https://github.com/basepom/duplicate-finder-maven-plugin/wiki[plugin documentation].

You can easily override them but setting the value of the selected property prefixed with `duplicate-finder-maven-plugin`. For example, set `duplicate-finder-maven-plugin.skip` to `true` in order to skip duplicates check in your build.

If you need to add `ignoredClassPatterns` or `ignoredResourcePatterns` to your setup, make sure to add them in the plugin configuration section of your project:

[source,xml]
----



org.basepom.maven
duplicate-finder-maven-plugin


org.joda.time.base.BaseDateTime
.*module-info


changelog.txt







----