From 1d22940199aa50d544d887c7970bb473ff8d8249 Mon Sep 17 00:00:00 2001 From: buildmaster Date: Tue, 21 May 2019 18:21:00 +0000 Subject: [PATCH] Sync docs from v1.2.4.RELEASE to gh-pages --- .../1.2.4.RELEASE/css/highlight.css | 35 + .../1.2.4.RELEASE/css/manual-multipage.css | 9 + .../1.2.4.RELEASE/css/manual-singlepage.css | 6 + spring-cloud-aws/1.2.4.RELEASE/css/manual.css | 344 +++ spring-cloud-aws/1.2.4.RELEASE/ghpages.sh | 330 +++ .../1.2.4.RELEASE/images/background.png | Bin 0 -> 18255 bytes .../1.2.4.RELEASE/images/callouts/1.png | Bin 0 -> 329 bytes .../1.2.4.RELEASE/images/callouts/2.png | Bin 0 -> 353 bytes .../1.2.4.RELEASE/images/callouts/3.png | Bin 0 -> 350 bytes .../1.2.4.RELEASE/images/caution.png | Bin 0 -> 2099 bytes .../cloud-environment-instance-tags.png | Bin 0 -> 186975 bytes .../images/cloud-environment-user-data.png | Bin 0 -> 73622 bytes .../images/cloudformation-overview.png | Bin 0 -> 221432 bytes .../1.2.4.RELEASE/images/graphics.graffle | Bin 0 -> 25214 bytes .../1.2.4.RELEASE/images/important.png | Bin 0 -> 2085 bytes .../images/jdbc-retry-interceptor.png | Bin 0 -> 49523 bytes .../1.2.4.RELEASE/images/logo.png | Bin 0 -> 4387 bytes .../1.2.4.RELEASE/images/note.png | Bin 0 -> 2257 bytes .../1.2.4.RELEASE/images/overview.png | Bin 0 -> 320811 bytes .../1.2.4.RELEASE/images/sns-overview.png | Bin 0 -> 134347 bytes spring-cloud-aws/1.2.4.RELEASE/images/tip.png | Bin 0 -> 931 bytes .../1.2.4.RELEASE/images/warning.png | Bin 0 -> 2130 bytes spring-cloud-aws/1.2.4.RELEASE/index.html | 117 ++ .../1.2.4.RELEASE/multi/css/highlight.css | 35 + .../multi/css/manual-multipage.css | 9 + .../multi/css/manual-singlepage.css | 6 + .../1.2.4.RELEASE/multi/css/manual.css | 344 +++ .../1.2.4.RELEASE/multi/images/background.png | Bin 0 -> 18255 bytes .../1.2.4.RELEASE/multi/images/callouts/1.png | Bin 0 -> 329 bytes .../1.2.4.RELEASE/multi/images/callouts/2.png | Bin 0 -> 353 bytes .../1.2.4.RELEASE/multi/images/callouts/3.png | Bin 0 -> 350 bytes .../1.2.4.RELEASE/multi/images/caution.png | Bin 0 -> 2099 bytes .../1.2.4.RELEASE/multi/images/important.png | Bin 0 -> 2085 bytes .../1.2.4.RELEASE/multi/images/logo.png | Bin 0 -> 4387 bytes .../1.2.4.RELEASE/multi/images/note.png | Bin 0 -> 2257 bytes .../1.2.4.RELEASE/multi/images/tip.png | Bin 0 -> 931 bytes .../1.2.4.RELEASE/multi/images/warning.png | Bin 0 -> 2130 bytes .../multi/multi__basic_setup.html | 97 + .../1.2.4.RELEASE/multi/multi__caching.html | 99 + .../multi/multi__cloud_environment.html | 138 ++ .../multi/multi__data_access_with_jdbc.html | 187 ++ .../multi__managing_cloud_environments.html | 85 + .../1.2.4.RELEASE/multi/multi__messaging.html | 208 ++ .../multi/multi__resource_handling.html | 107 + .../multi/multi__sending_mails.html | 94 + .../multi__using_amazon_web_services.html | 17 + .../1.2.4.RELEASE/multi/multi_pr01.html | 3 + .../multi/multi_spring-cloud-aws.html | 3 + .../1.2.4.RELEASE/single/css/highlight.css | 35 + .../single/css/manual-multipage.css | 9 + .../single/css/manual-singlepage.css | 6 + .../1.2.4.RELEASE/single/css/manual.css | 344 +++ .../single/images/background.png | Bin 0 -> 18255 bytes .../single/images/callouts/1.png | Bin 0 -> 329 bytes .../single/images/callouts/2.png | Bin 0 -> 353 bytes .../single/images/callouts/3.png | Bin 0 -> 350 bytes .../1.2.4.RELEASE/single/images/caution.png | Bin 0 -> 2099 bytes .../1.2.4.RELEASE/single/images/important.png | Bin 0 -> 2085 bytes .../1.2.4.RELEASE/single/images/logo.png | Bin 0 -> 4387 bytes .../1.2.4.RELEASE/single/images/note.png | Bin 0 -> 2257 bytes .../1.2.4.RELEASE/single/images/tip.png | Bin 0 -> 931 bytes .../1.2.4.RELEASE/single/images/warning.png | Bin 0 -> 2130 bytes .../single/spring-cloud-aws.html | 1008 +++++++++ .../1.2.4.RELEASE/spring-cloud-aws.xml | 1852 +++++++++++++++++ 64 files changed, 5527 insertions(+) create mode 100644 spring-cloud-aws/1.2.4.RELEASE/css/highlight.css create mode 100644 spring-cloud-aws/1.2.4.RELEASE/css/manual-multipage.css create mode 100644 spring-cloud-aws/1.2.4.RELEASE/css/manual-singlepage.css create mode 100644 spring-cloud-aws/1.2.4.RELEASE/css/manual.css create mode 100644 spring-cloud-aws/1.2.4.RELEASE/ghpages.sh create mode 100644 spring-cloud-aws/1.2.4.RELEASE/images/background.png create mode 100644 spring-cloud-aws/1.2.4.RELEASE/images/callouts/1.png create mode 100644 spring-cloud-aws/1.2.4.RELEASE/images/callouts/2.png create mode 100644 spring-cloud-aws/1.2.4.RELEASE/images/callouts/3.png create mode 100644 spring-cloud-aws/1.2.4.RELEASE/images/caution.png create mode 100644 spring-cloud-aws/1.2.4.RELEASE/images/cloud-environment-instance-tags.png create mode 100644 spring-cloud-aws/1.2.4.RELEASE/images/cloud-environment-user-data.png create mode 100644 spring-cloud-aws/1.2.4.RELEASE/images/cloudformation-overview.png create mode 100644 spring-cloud-aws/1.2.4.RELEASE/images/graphics.graffle create mode 100644 spring-cloud-aws/1.2.4.RELEASE/images/important.png create mode 100644 spring-cloud-aws/1.2.4.RELEASE/images/jdbc-retry-interceptor.png create mode 100644 spring-cloud-aws/1.2.4.RELEASE/images/logo.png create mode 100644 spring-cloud-aws/1.2.4.RELEASE/images/note.png create mode 100644 spring-cloud-aws/1.2.4.RELEASE/images/overview.png create mode 100644 spring-cloud-aws/1.2.4.RELEASE/images/sns-overview.png create mode 100644 spring-cloud-aws/1.2.4.RELEASE/images/tip.png create mode 100644 spring-cloud-aws/1.2.4.RELEASE/images/warning.png create mode 100644 spring-cloud-aws/1.2.4.RELEASE/index.html create mode 100644 spring-cloud-aws/1.2.4.RELEASE/multi/css/highlight.css create mode 100644 spring-cloud-aws/1.2.4.RELEASE/multi/css/manual-multipage.css create mode 100644 spring-cloud-aws/1.2.4.RELEASE/multi/css/manual-singlepage.css create mode 100644 spring-cloud-aws/1.2.4.RELEASE/multi/css/manual.css create mode 100644 spring-cloud-aws/1.2.4.RELEASE/multi/images/background.png create mode 100644 spring-cloud-aws/1.2.4.RELEASE/multi/images/callouts/1.png create mode 100644 spring-cloud-aws/1.2.4.RELEASE/multi/images/callouts/2.png create mode 100644 spring-cloud-aws/1.2.4.RELEASE/multi/images/callouts/3.png create mode 100644 spring-cloud-aws/1.2.4.RELEASE/multi/images/caution.png create mode 100644 spring-cloud-aws/1.2.4.RELEASE/multi/images/important.png create mode 100644 spring-cloud-aws/1.2.4.RELEASE/multi/images/logo.png create mode 100644 spring-cloud-aws/1.2.4.RELEASE/multi/images/note.png create mode 100644 spring-cloud-aws/1.2.4.RELEASE/multi/images/tip.png create mode 100644 spring-cloud-aws/1.2.4.RELEASE/multi/images/warning.png create mode 100644 spring-cloud-aws/1.2.4.RELEASE/multi/multi__basic_setup.html create mode 100644 spring-cloud-aws/1.2.4.RELEASE/multi/multi__caching.html create mode 100644 spring-cloud-aws/1.2.4.RELEASE/multi/multi__cloud_environment.html create mode 100644 spring-cloud-aws/1.2.4.RELEASE/multi/multi__data_access_with_jdbc.html create mode 100644 spring-cloud-aws/1.2.4.RELEASE/multi/multi__managing_cloud_environments.html create mode 100644 spring-cloud-aws/1.2.4.RELEASE/multi/multi__messaging.html create mode 100644 spring-cloud-aws/1.2.4.RELEASE/multi/multi__resource_handling.html create mode 100644 spring-cloud-aws/1.2.4.RELEASE/multi/multi__sending_mails.html create mode 100644 spring-cloud-aws/1.2.4.RELEASE/multi/multi__using_amazon_web_services.html create mode 100644 spring-cloud-aws/1.2.4.RELEASE/multi/multi_pr01.html create mode 100644 spring-cloud-aws/1.2.4.RELEASE/multi/multi_spring-cloud-aws.html create mode 100644 spring-cloud-aws/1.2.4.RELEASE/single/css/highlight.css create mode 100644 spring-cloud-aws/1.2.4.RELEASE/single/css/manual-multipage.css create mode 100644 spring-cloud-aws/1.2.4.RELEASE/single/css/manual-singlepage.css create mode 100644 spring-cloud-aws/1.2.4.RELEASE/single/css/manual.css create mode 100644 spring-cloud-aws/1.2.4.RELEASE/single/images/background.png create mode 100644 spring-cloud-aws/1.2.4.RELEASE/single/images/callouts/1.png create mode 100644 spring-cloud-aws/1.2.4.RELEASE/single/images/callouts/2.png create mode 100644 spring-cloud-aws/1.2.4.RELEASE/single/images/callouts/3.png create mode 100644 spring-cloud-aws/1.2.4.RELEASE/single/images/caution.png create mode 100644 spring-cloud-aws/1.2.4.RELEASE/single/images/important.png create mode 100644 spring-cloud-aws/1.2.4.RELEASE/single/images/logo.png create mode 100644 spring-cloud-aws/1.2.4.RELEASE/single/images/note.png create mode 100644 spring-cloud-aws/1.2.4.RELEASE/single/images/tip.png create mode 100644 spring-cloud-aws/1.2.4.RELEASE/single/images/warning.png create mode 100644 spring-cloud-aws/1.2.4.RELEASE/single/spring-cloud-aws.html create mode 100644 spring-cloud-aws/1.2.4.RELEASE/spring-cloud-aws.xml diff --git a/spring-cloud-aws/1.2.4.RELEASE/css/highlight.css b/spring-cloud-aws/1.2.4.RELEASE/css/highlight.css new file mode 100644 index 00000000..ffefef72 --- /dev/null +++ b/spring-cloud-aws/1.2.4.RELEASE/css/highlight.css @@ -0,0 +1,35 @@ +/* + code highlight CSS resemblign the Eclipse IDE default color schema + @author Costin Leau +*/ + +.hl-keyword { + color: #7F0055; + font-weight: bold; +} + +.hl-comment { + color: #3F5F5F; + font-style: italic; +} + +.hl-multiline-comment { + color: #3F5FBF; + font-style: italic; +} + +.hl-tag { + color: #3F7F7F; +} + +.hl-attribute { + color: #7F007F; +} + +.hl-value { + color: #2A00FF; +} + +.hl-string { + color: #2A00FF; +} \ No newline at end of file diff --git a/spring-cloud-aws/1.2.4.RELEASE/css/manual-multipage.css b/spring-cloud-aws/1.2.4.RELEASE/css/manual-multipage.css new file mode 100644 index 00000000..0c484531 --- /dev/null +++ b/spring-cloud-aws/1.2.4.RELEASE/css/manual-multipage.css @@ -0,0 +1,9 @@ +@IMPORT url("manual.css"); + +body.firstpage { + background: url("../images/background.png") no-repeat center top; +} + +div.part h1 { + border-top: none; +} diff --git a/spring-cloud-aws/1.2.4.RELEASE/css/manual-singlepage.css b/spring-cloud-aws/1.2.4.RELEASE/css/manual-singlepage.css new file mode 100644 index 00000000..4a7fd140 --- /dev/null +++ b/spring-cloud-aws/1.2.4.RELEASE/css/manual-singlepage.css @@ -0,0 +1,6 @@ +@IMPORT url("manual.css"); + +body { + background: url("../images/background.png") no-repeat center top; +} + diff --git a/spring-cloud-aws/1.2.4.RELEASE/css/manual.css b/spring-cloud-aws/1.2.4.RELEASE/css/manual.css new file mode 100644 index 00000000..0ecbe2e8 --- /dev/null +++ b/spring-cloud-aws/1.2.4.RELEASE/css/manual.css @@ -0,0 +1,344 @@ +@IMPORT url("highlight.css"); + +html { + padding: 0pt; + margin: 0pt; +} + +body { + color: #333333; + margin: 15px 30px; + font-family: Helvetica, Arial, Freesans, Clean, Sans-serif; + line-height: 1.6; + -webkit-font-smoothing: antialiased; +} + +code { + font-size: 16px; + font-family: Consolas, "Liberation Mono", Courier, monospace; +} + +:not(a)>code { + color: #6D180B; +} + +:not(pre)>code { + background-color: #F2F2F2; + border: 1px solid #CCCCCC; + border-radius: 4px; + padding: 1px 3px 0; + text-shadow: none; + white-space: nowrap; +} + +body>*:first-child { + margin-top: 0 !important; +} + +div { + margin: 0pt; +} + +hr { + border: 1px solid #CCCCCC; + background: #CCCCCC; +} + +h1,h2,h3,h4,h5,h6 { + color: #000000; + cursor: text; + font-weight: bold; + margin: 30px 0 10px; + padding: 0; +} + +h1,h2,h3 { + margin: 40px 0 10px; +} + +h1 { + margin: 70px 0 30px; + padding-top: 20px; +} + +div.part h1 { + border-top: 1px dotted #CCCCCC; +} + +h1,h1 code { + font-size: 32px; +} + +h2,h2 code { + font-size: 24px; +} + +h3,h3 code { + font-size: 20px; +} + +h4,h1 code,h5,h5 code,h6,h6 code { + font-size: 18px; +} + +div.book,div.chapter,div.appendix,div.part,div.preface { + min-width: 300px; + max-width: 1200px; + margin: 0 auto; +} + +p.releaseinfo { + font-weight: bold; + margin-bottom: 40px; + margin-top: 40px; +} + +div.authorgroup { + line-height: 1; +} + +p.copyright { + line-height: 1; + margin-bottom: -5px; +} + +.legalnotice p { + font-style: italic; + font-size: 14px; + line-height: 1; +} + +div.titlepage+p,div.titlepage+p { + margin-top: 0; +} + +pre { + line-height: 1.0; + color: black; +} + +a { + color: #4183C4; + text-decoration: none; +} + +p { + margin: 15px 0; + text-align: left; +} + +ul,ol { + padding-left: 30px; +} + +li p { + margin: 0; +} + +div.table { + margin: 1em; + padding: 0.5em; + text-align: center; +} + +div.table table,div.informaltable table { + display: table; + width: 100%; +} + +div.table td { + padding-left: 7px; + padding-right: 7px; +} + +.sidebar { + line-height: 1.4; + padding: 0 20px; + background-color: #F8F8F8; + border: 1px solid #CCCCCC; + border-radius: 3px 3px 3px 3px; +} + +.sidebar p.title { + color: #6D180B; +} + +pre.programlisting,pre.screen { + font-size: 15px; + padding: 6px 10px; + background-color: #F8F8F8; + border: 1px solid #CCCCCC; + border-radius: 3px 3px 3px 3px; + clear: both; + overflow: auto; + line-height: 1.4; + font-family: Consolas, "Liberation Mono", Courier, monospace; +} + +table { + border-collapse: collapse; + border-spacing: 0; + border: 1px solid #DDDDDD !important; + border-radius: 4px !important; + border-collapse: separate !important; + line-height: 1.6; +} + +table thead { + background: #F5F5F5; +} + +table tr { + border: none; + border-bottom: none; +} + +table th { + font-weight: bold; +} + +table th,table td { + border: none !important; + padding: 6px 13px; +} + +table tr:nth-child(2n) { + background-color: #F8F8F8; +} + +td p { + margin: 0 0 15px 0; +} + +div.table-contents td p { + margin: 0; +} + +div.important *,div.note *,div.tip *,div.warning *,div.navheader *,div.navfooter *,div.calloutlist * + { + border: none !important; + background: none !important; + margin: 0; +} + +div.important p,div.note p,div.tip p,div.warning p { + color: #6F6F6F; + line-height: 1.6; +} + +div.important code,div.note code,div.tip code,div.warning code { + background-color: #F2F2F2 !important; + border: 1px solid #CCCCCC !important; + border-radius: 4px !important; + padding: 1px 3px 0 !important; + text-shadow: none !important; + white-space: nowrap !important; +} + +.note th,.tip th,.warning th { + display: none; +} + +.note tr:first-child td,.tip tr:first-child td,.warning tr:first-child td + { + border-right: 1px solid #CCCCCC !important; + padding-top: 10px; +} + +div.calloutlist p,div.calloutlist td { + padding: 0; + margin: 0; +} + +div.calloutlist>table>tbody>tr>td:first-child { + padding-left: 10px; + width: 30px !important; +} + +div.important,div.note,div.tip,div.warning { + margin-left: 0px !important; + margin-right: 20px !important; + margin-top: 20px; + margin-bottom: 20px; + padding-top: 10px; + padding-bottom: 10px; +} + +div.toc { + line-height: 1.2; +} + +dl,dt { + margin-top: 1px; + margin-bottom: 0; +} + +div.toc>dl>dt { + font-size: 32px; + font-weight: bold; + margin: 30px 0 10px 0; + display: block; +} + +div.toc>dl>dd>dl>dt { + font-size: 24px; + font-weight: bold; + margin: 20px 0 10px 0; + display: block; +} + +div.toc>dl>dd>dl>dd>dl>dt { + font-weight: bold; + font-size: 20px; + margin: 10px 0 0 0; +} + +tbody.footnotes * { + border: none !important; +} + +div.footnote p { + margin: 0; + line-height: 1; +} + +div.footnote p sup { + margin-right: 6px; + vertical-align: middle; +} + +div.navheader { + border-bottom: 1px solid #CCCCCC; +} + +div.navfooter { + border-top: 1px solid #CCCCCC; +} + +.title { + margin-left: -1em; + padding-left: 1em; +} + +.title>a { + position: absolute; + visibility: hidden; + display: block; + font-size: 0.85em; + margin-top: 0.05em; + margin-left: -1em; + vertical-align: text-top; + color: black; +} + +.title>a:before { + content: "\00A7"; +} + +.title:hover>a,.title>a:hover,.title:hover>a:hover { + visibility: visible; +} + +.title:focus>a,.title>a:focus,.title:focus>a:focus { + outline: 0; +} diff --git a/spring-cloud-aws/1.2.4.RELEASE/ghpages.sh b/spring-cloud-aws/1.2.4.RELEASE/ghpages.sh new file mode 100644 index 00000000..55e76be1 --- /dev/null +++ b/spring-cloud-aws/1.2.4.RELEASE/ghpages.sh @@ -0,0 +1,330 @@ +#!/bin/bash -x + +set -e + +# Set default props like MAVEN_PATH, ROOT_FOLDER etc. +function set_default_props() { + # The script should be executed from the root folder + ROOT_FOLDER=`pwd` + echo "Current folder is ${ROOT_FOLDER}" + + if [[ ! -e "${ROOT_FOLDER}/.git" ]]; then + echo "You're not in the root folder of the project!" + exit 1 + fi + + # Prop that will let commit the changes + COMMIT_CHANGES="no" + MAVEN_PATH=${MAVEN_PATH:-} + echo "Path to Maven is [${MAVEN_PATH}]" + REPO_NAME=${PWD##*/} + echo "Repo name is [${REPO_NAME}]" + SPRING_CLOUD_STATIC_REPO=${SPRING_CLOUD_STATIC_REPO:-git@github.com:spring-cloud/spring-cloud-static.git} + echo "Spring Cloud Static repo is [${SPRING_CLOUD_STATIC_REPO}" +} + +# Check if gh-pages exists and docs have been built +function check_if_anything_to_sync() { + git remote set-url --push origin `git config remote.origin.url | sed -e 's/^git:/https:/'` + + if ! (git remote set-branches --add origin gh-pages && git fetch -q); then + echo "No gh-pages, so not syncing" + exit 0 + fi + + if ! [ -d docs/target/generated-docs ] && ! [ "${BUILD}" == "yes" ]; then + echo "No gh-pages sources in docs/target/generated-docs, so not syncing" + exit 0 + fi +} + +function retrieve_current_branch() { + # Code getting the name of the current branch. For master we want to publish as we did until now + # https://stackoverflow.com/questions/1593051/how-to-programmatically-determine-the-current-checked-out-git-branch + # If there is a branch already passed will reuse it - otherwise will try to find it + CURRENT_BRANCH=${BRANCH} + if [[ -z "${CURRENT_BRANCH}" ]] ; then + CURRENT_BRANCH=$(git symbolic-ref -q HEAD) + CURRENT_BRANCH=${CURRENT_BRANCH##refs/heads/} + CURRENT_BRANCH=${CURRENT_BRANCH:-HEAD} + fi + echo "Current branch is [${CURRENT_BRANCH}]" + git checkout ${CURRENT_BRANCH} || echo "Failed to check the branch... continuing with the script" +} + +# Switches to the provided value of the release version. We always prefix it with `v` +function switch_to_tag() { + git checkout v${VERSION} +} + +# Build the docs if switch is on +function build_docs_if_applicable() { + if [[ "${BUILD}" == "yes" ]] ; then + ./mvnw clean install -P docs -pl docs -DskipTests + fi +} + +# Get the name of the `docs.main` property +# Get whitelisted branches - assumes that a `docs` module is available under `docs` profile +function retrieve_doc_properties() { + MAIN_ADOC_VALUE=$("${MAVEN_PATH}"mvn -q \ + -Dexec.executable="echo" \ + -Dexec.args='${docs.main}' \ + --non-recursive \ + org.codehaus.mojo:exec-maven-plugin:1.3.1:exec) + echo "Extracted 'main.adoc' from Maven build [${MAIN_ADOC_VALUE}]" + + + WHITELIST_PROPERTY=${WHITELIST_PROPERTY:-"docs.whitelisted.branches"} + WHITELISTED_BRANCHES_VALUE=$("${MAVEN_PATH}"mvn -q \ + -Dexec.executable="echo" \ + -Dexec.args="\${${WHITELIST_PROPERTY}}" \ + org.codehaus.mojo:exec-maven-plugin:1.3.1:exec \ + -P docs \ + -pl docs) + echo "Extracted '${WHITELIST_PROPERTY}' from Maven build [${WHITELISTED_BRANCHES_VALUE}]" +} + +# Stash any outstanding changes +function stash_changes() { + git diff-index --quiet HEAD && dirty=$? || (echo "Failed to check if the current repo is dirty. Assuming that it is." && dirty="1") + if [ "$dirty" != "0" ]; then git stash; fi +} + +# Switch to gh-pages branch to sync it with current branch +function add_docs_from_target() { + local DESTINATION_REPO_FOLDER + if [[ -z "${DESTINATION}" && -z "${CLONE}" ]] ; then + DESTINATION_REPO_FOLDER=${ROOT_FOLDER} + elif [[ "${CLONE}" == "yes" ]]; then + mkdir -p ${ROOT_FOLDER}/target + local clonedStatic=${ROOT_FOLDER}/target/spring-cloud-static + if [[ ! -e "${clonedStatic}/.git" ]]; then + echo "Cloning Spring Cloud Static to target" + git clone ${SPRING_CLOUD_STATIC_REPO} ${clonedStatic} && git checkout gh-pages + else + echo "Spring Cloud Static already cloned - will pull changes" + cd ${clonedStatic} && git checkout gh-pages && git pull origin gh-pages + fi + DESTINATION_REPO_FOLDER=${clonedStatic}/${REPO_NAME} + mkdir -p ${DESTINATION_REPO_FOLDER} + else + if [[ ! -e "${DESTINATION}/.git" ]]; then + echo "[${DESTINATION}] is not a git repository" + exit 1 + fi + DESTINATION_REPO_FOLDER=${DESTINATION}/${REPO_NAME} + mkdir -p ${DESTINATION_REPO_FOLDER} + echo "Destination was provided [${DESTINATION}]" + fi + cd ${DESTINATION_REPO_FOLDER} + git checkout gh-pages + git pull origin gh-pages + + # Add git branches + ################################################################### + if [[ -z "${VERSION}" ]] ; then + copy_docs_for_current_version + else + copy_docs_for_provided_version + fi + commit_changes_if_applicable +} + + +# Copies the docs by using the retrieved properties from Maven build +function copy_docs_for_current_version() { + if [[ "${CURRENT_BRANCH}" == "master" ]] ; then + echo -e "Current branch is master - will copy the current docs only to the root folder" + for f in docs/target/generated-docs/*; do + file=${f#docs/target/generated-docs/*} + if ! git ls-files -i -o --exclude-standard --directory | grep -q ^$file$; then + # Not ignored... + cp -rf $f ${ROOT_FOLDER}/ + git add -A ${ROOT_FOLDER}/$file + fi + done + COMMIT_CHANGES="yes" + else + echo -e "Current branch is [${CURRENT_BRANCH}]" + # https://stackoverflow.com/questions/29300806/a-bash-script-to-check-if-a-string-is-present-in-a-comma-separated-list-of-strin + if [[ ",${WHITELISTED_BRANCHES_VALUE}," = *",${CURRENT_BRANCH},"* ]] ; then + mkdir -p ${ROOT_FOLDER}/${CURRENT_BRANCH} + echo -e "Branch [${CURRENT_BRANCH}] is whitelisted! Will copy the current docs to the [${CURRENT_BRANCH}] folder" + for f in docs/target/generated-docs/*; do + file=${f#docs/target/generated-docs/*} + if ! git ls-files -i -o --exclude-standard --directory | grep -q ^$file$; then + # Not ignored... + # We want users to access 1.0.0.RELEASE/ instead of 1.0.0.RELEASE/spring-cloud.sleuth.html + if [[ "${file}" == "${MAIN_ADOC_VALUE}.html" ]] ; then + # We don't want to copy the spring-cloud-sleuth.html + # we want it to be converted to index.html + cp -rf $f ${ROOT_FOLDER}/${CURRENT_BRANCH}/index.html + git add -A ${ROOT_FOLDER}/${CURRENT_BRANCH}/index.html + else + cp -rf $f ${ROOT_FOLDER}/${CURRENT_BRANCH} + git add -A ${ROOT_FOLDER}/${CURRENT_BRANCH}/$file + fi + fi + done + COMMIT_CHANGES="yes" + else + echo -e "Branch [${CURRENT_BRANCH}] is not on the white list! Check out the Maven [${WHITELIST_PROPERTY}] property in + [docs] module available under [docs] profile. Won't commit any changes to gh-pages for this branch." + fi + fi +} + +# Copies the docs by using the explicitly provided version +function copy_docs_for_provided_version() { + local FOLDER=${DESTINATION_REPO_FOLDER}/${VERSION} + mkdir -p ${FOLDER} + echo -e "Current tag is [v${VERSION}] Will copy the current docs to the [${FOLDER}] folder" + for f in ${ROOT_FOLDER}/docs/target/generated-docs/*; do + file=${f#${ROOT_FOLDER}/docs/target/generated-docs/*} + copy_docs_for_branch ${file} ${FOLDER} + done + COMMIT_CHANGES="yes" + CURRENT_BRANCH="v${VERSION}" +} + +# Copies the docs from target to the provided destination +# Params: +# $1 - file from target +# $2 - destination to which copy the files +function copy_docs_for_branch() { + local file=$1 + local destination=$2 + if ! git ls-files -i -o --exclude-standard --directory | grep -q ^${file}$; then + # Not ignored... + # We want users to access 1.0.0.RELEASE/ instead of 1.0.0.RELEASE/spring-cloud.sleuth.html + if [[ ("${file}" == "${MAIN_ADOC_VALUE}.html") || ("${file}" == "${REPO_NAME}.html") ]] ; then + # We don't want to copy the spring-cloud-sleuth.html + # we want it to be converted to index.html + cp -rf $f ${destination}/index.html + git add -A ${destination}/index.html + else + cp -rf $f ${destination} + git add -A ${destination}/$file + fi + fi +} + +function commit_changes_if_applicable() { + if [[ "${COMMIT_CHANGES}" == "yes" ]] ; then + COMMIT_SUCCESSFUL="no" + git commit -a -m "Sync docs from ${CURRENT_BRANCH} to gh-pages" && COMMIT_SUCCESSFUL="yes" || echo "Failed to commit changes" + + # Uncomment the following push if you want to auto push to + # the gh-pages branch whenever you commit to master locally. + # This is a little extreme. Use with care! + ################################################################### + if [[ "${COMMIT_SUCCESSFUL}" == "yes" ]] ; then + git push origin gh-pages + fi + fi +} + +# Switch back to the previous branch and exit block +function checkout_previous_branch() { + # If -version was provided we need to come back to root project + cd ${ROOT_FOLDER} + git checkout ${CURRENT_BRANCH} || echo "Failed to check the branch... continuing with the script" + if [ "$dirty" != "0" ]; then git stash pop; fi + exit 0 +} + +# Assert if properties have been properly passed +function assert_properties() { +echo "VERSION [${VERSION}], DESTINATION [${DESTINATION}], CLONE [${CLONE}]" +if [[ "${VERSION}" != "" && (-z "${DESTINATION}" && -z "${CLONE}") ]] ; then echo "Version was set but destination / clone was not!"; exit 1;fi +if [[ ("${DESTINATION}" != "" && "${CLONE}" != "") && -z "${VERSION}" ]] ; then echo "Destination / clone was set but version was not!"; exit 1;fi +if [[ "${DESTINATION}" != "" && "${CLONE}" == "yes" ]] ; then echo "Destination and clone was set. Pick one!"; exit 1;fi +} + +# Prints the usage +function print_usage() { +cat </` +- if the destination switch is passed (-d) then the script will check if the provided dir is a git repo and then will + switch to gh-pages of that repo and copy the generated docs to `docs//` + +USAGE: + +You can use the following options: + +-v|--version - the script will apply the whole procedure for a particular library version +-d|--destination - the root of destination folder where the docs should be copied. You have to use the full path. + E.g. point to spring-cloud-static folder. Can't be used with (-c) +-b|--build - will run the standard build process after checking out the branch +-c|--clone - will automatically clone the spring-cloud-static repo instead of providing the destination. + Obviously can't be used with (-d) + +EOF +} + + +# ========================================== +# ____ ____ _____ _____ _____ _______ +# / ____|/ ____| __ \|_ _| __ \__ __| +# | (___ | | | |__) | | | | |__) | | | +# \___ \| | | _ / | | | ___/ | | +# ____) | |____| | \ \ _| |_| | | | +# |_____/ \_____|_| \_\_____|_| |_| +# +# ========================================== + +while [[ $# > 0 ]] +do +key="$1" +case ${key} in + -v|--version) + VERSION="$2" + shift # past argument + ;; + -d|--destination) + DESTINATION="$2" + shift # past argument + ;; + -b|--build) + BUILD="yes" + ;; + -c|--clone) + CLONE="yes" + ;; + -h|--help) + print_usage + exit 0 + ;; + *) + echo "Invalid option: [$1]" + print_usage + exit 1 + ;; +esac +shift # past argument or value +done + +assert_properties +set_default_props +check_if_anything_to_sync +if [[ -z "${VERSION}" ]] ; then + retrieve_current_branch +else + switch_to_tag +fi +build_docs_if_applicable +retrieve_doc_properties +stash_changes +add_docs_from_target +checkout_previous_branch \ No newline at end of file diff --git a/spring-cloud-aws/1.2.4.RELEASE/images/background.png b/spring-cloud-aws/1.2.4.RELEASE/images/background.png new file mode 100644 index 0000000000000000000000000000000000000000..15dca6fbe2669fae3609605e49c69cc414f1b6ed GIT binary patch literal 18255 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 EKU&lfD*ylh literal 0 HcmV?d00001 diff --git a/spring-cloud-aws/1.2.4.RELEASE/images/callouts/1.png b/spring-cloud-aws/1.2.4.RELEASE/images/callouts/1.png new file mode 100644 index 0000000000000000000000000000000000000000..7d473430b7bec514f7de12f5769fe7c5859e8c5d GIT binary patch literal 329 zcmeAS@N?(olHy`uVBq!ia0vp^JRr;gBp8b2n5}^nQC}X^4DKU-G|w_t}fLBA)Suv#nrW z!^h2QnY_`l!BOq-UXEX{m2up>JTQkX)2m zTvF+fTUlI^nXH#utd~++ke^qgmzgTe~DWM4ffP81J literal 0 HcmV?d00001 diff --git a/spring-cloud-aws/1.2.4.RELEASE/images/callouts/2.png b/spring-cloud-aws/1.2.4.RELEASE/images/callouts/2.png new file mode 100644 index 0000000000000000000000000000000000000000..5d09341b2f6d2ea2d1d5dad5d980f14b4b05dfd2 GIT binary patch literal 353 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�_Bcz^@sKl);P$Z4l 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

)Ee_8=7eKc@ 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 literal 0 HcmV?d00001 diff --git a/spring-cloud-aws/1.2.4.RELEASE/images/cloud-environment-user-data.png b/spring-cloud-aws/1.2.4.RELEASE/images/cloud-environment-user-data.png new file mode 100644 index 0000000000000000000000000000000000000000..3b1dbca6df7a7d5c32edbb97f94676e71b1faf4e GIT binary patch literal 73622 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 Ty^uI{g!wYmGtn*4c6|766w2=S literal 0 HcmV?d00001 diff --git a/spring-cloud-aws/1.2.4.RELEASE/images/cloudformation-overview.png b/spring-cloud-aws/1.2.4.RELEASE/images/cloudformation-overview.png new file mode 100644 index 0000000000000000000000000000000000000000..d65223b88c6d723fd50ea7bc3ecac4477ff567d0 GIT binary patch literal 221432 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 U?vnVQ_Xs{_CRWB}SKS`|FDlAWGXMYp literal 0 HcmV?d00001 diff --git a/spring-cloud-aws/1.2.4.RELEASE/images/graphics.graffle b/spring-cloud-aws/1.2.4.RELEASE/images/graphics.graffle new file mode 100644 index 0000000000000000000000000000000000000000..57594091975370b578dc83f80ecca1b22860915c GIT binary patch literal 25214 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 literal 0 HcmV?d00001 diff --git a/spring-cloud-aws/1.2.4.RELEASE/images/important.png b/spring-cloud-aws/1.2.4.RELEASE/images/important.png new file mode 100644 index 0000000000000000000000000000000000000000..ec54df65cee2de118b8865a16c1b5d757e33709d GIT binary patch literal 2085 zcmbVNdr%Yk9ZyB)kUM)fy*ZWlX7hkR9=mxg$&&EMiv$RUB!mDWS(1gskWEOIB!Cwl zf?{PTT2XP%yB;V#^%U9;pe+^T>{&UE>x@@VD|&aWW35hWduOkAqaC|ZvHiolKf1HK zzu)h>-_Pg!p50|ED_WP3lt81=*6DR>6SZ!PJ@IkW`;%iIE>KG%sj-n}UjrG&0ywSE z>8r;9y%%f5O*rOkZN7-hX|y<(+hQYahEmkw^YXEn4nN}cQ)n7Zo*(gJ4i8QO^?0M3 zP=NP-H46f6rvj{$7$AdRg}dCkwg7H!E3-J-JPw%?%+CYl5tJhE;v@z{yiG(9jVQp! zyePGgi3K3=ScUW`z$Z@G3`RiZ3*dl+FXA~M7zPl84~r!T0&@W&1PcWabt61jj7ktx zm;*e$K+0Oc*?^kV+NZXtlLB;+q#qRs!r?GKEaLkDjRIIElf^iMLLQ~T3$_v@7U2;= z#tMTP4>|&FKk4=nK#UQq_qC7;kn;3N2wuOz@Qj!UK1~#rGC>6M3t&DZ@Ooo$J=PAA zCj7r{JXbqtY4zg*6CU)n1RPX78W<~JDtF&)D5gkxgKi4AsiI&_YM-OUixZ??tpKSn ze5c!qLLw=Z#T+q|BZLqs3`%u1gPQQ^_OJRXsZqwOD&qLO2*a!%fyU`U&AilhSE!u zf#RfW8Nca8?LYcmzi;^J0$aTLuk(_I7B(1E%i{iHi|z|Ja9*KR}4%unPJ zFw4TowlS1#GO3H7Q31*c7>im^52SWUc{QwoqtQYKQqqoI_}z^Db(y?bEU3*;g(Uk< zbhQt9Q;Rl4_Xd*GuUR{_5VHeEE0C#yNL!dhWt>(;lnbF3j@_RUxGA zhlU&%fA8^*!l1Y?gk+ci-WE<{Z}q7&M>qEshlgBmoET)9!8{*KHv&6`TU&?mta6qd z7iwD&9iFFcM~&TiU^y@_(iItM%&Y+Q4fzTJHodO2br<#Qk8o=Fh6?xiG;t(<^tVlGN*YwHYbN*+ux#qerwpu9`;s z-h^IVXo>ux{&d`$r9Z!%mi_6zmY=<_(Aa4VWq+kPR9x~xOWlpzJxnYGn>;_NtFFtp z54GGsQk4p=t-Lq$;+whBb8|*17xjJKQ38{*G>h8VSmBGr5-Z@b}+_3*Xjg7`HBiDzyy{&6?adFeNk#BLg0d5b-3 z9p!F+xWNDCwRfkhhF=kO!^16Ky!0x2slrhor)q_mdPk(;+PiMET zz5h+ansg!r=$v-@J7+7{oa2j2pl#+KRU%es&<_a|W z!QKDvpGsto{Bi1?F{rbP{YmvHRmJgSd->g=lhdE>DT$9i&DZ~hSKGgD<3Nr~x0crR x@l@~8v%fudb7|Fs)}6WGzYSl#_Wjpr@eu7sVJhKCFm=a%+M#HR literal 0 HcmV?d00001 diff --git a/spring-cloud-aws/1.2.4.RELEASE/images/jdbc-retry-interceptor.png b/spring-cloud-aws/1.2.4.RELEASE/images/jdbc-retry-interceptor.png new file mode 100644 index 0000000000000000000000000000000000000000..c2a2543dab77a85c45feb70709bace57665e11a9 GIT binary patch literal 49523 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 AU;qFB literal 0 HcmV?d00001 diff --git a/spring-cloud-aws/1.2.4.RELEASE/images/logo.png b/spring-cloud-aws/1.2.4.RELEASE/images/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..ade2ce6ed9d9e9f2f4d9c5729a252ee618a0a5a7 GIT binary patch literal 4387 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

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

82$1#Tm8Xfkm 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 FV1jwin)(0$ literal 0 HcmV?d00001 diff --git a/spring-cloud-aws/1.2.4.RELEASE/images/warning.png b/spring-cloud-aws/1.2.4.RELEASE/images/warning.png new file mode 100644 index 0000000000000000000000000000000000000000..0d5b5244605adbb7ab05a1549746a9c35490f95b GIT binary patch literal 2130 zcmbVNYg7|w8V(4q($)50y>JmGlLW#g$xLn}Vd2Si)}#|ptPAQp3Bp-3!-lL0;i^LY?;i#f0m5s49g z3h?3rDQg~EDPlm?FKkgKIcWEK-3X6YU0uzs7H|nq84s39r2!5;pF?SI$QqXy^Ko1x zV~zpENvp@<_Bsd`5MabC#3rvCq&$5dg43yGR zAdy0-rWjC#a1N_+kzUMY#pmogD7!DP(9dEKr3c5ngvUq_6>}Y+w-a81v=eSXnIi_+ zI?U>D1q2C!0zHox#XXKH+@|&rPT*OF5yvY$5J|)WwLqnU)c-5;=UChSlQkaY3@^|g z|J5#YBB}=i+n3Ex9bS$P?xJSKLk)-HHII@;3qG#TG^!+aj>0QkO~7kB0+|yM;YrGB zF>Ge@isQ#73%Tp#k_(tInh3U$uJWY-+DND*o}L-CB5g@#9YWWw~pxZ!Obm>yN#ZHFvL0zA3vNCTJ=t?)~`2O1M{L6un=ml<2x zQEYfifmA?Pz0tqRs^2Utt1pU0BQB1eIY0U_I}c1Y#PP7Ci5s7#IJn}xK{G+{_v^Z+1V#$Erodv>d}ew>RP0wzw+GWkGCBlS1Oj5Z!5NK zUuSR6>pa}RSEZ;qE_w1l#`hQX4E67U6NeP zHZ`T&wj0_H)t|Y1thUqnhub?%e)Y07;a^Tq%FO&iQkR&`qG!dh*2WfW(HuRQj*_DI zeCD1bUA|tMwjOb8E|FRIn$pzEU!2j_N}1Z2ig)vbr5xA0rjC70cmI6*%Uf->hWzaZ z{33HABO5q)vRhzDly2l691@+q3O{}NbSzx+I*k@|L4&3leK#$>u+T#TvTELfKb|IH zc23atf3vmfCa0&TWY@iuoA_Pm<0~ttEC*ut`isb^jXS>X^Sp=l?RXN_OJ*&usGXg$ zTlTv;Ch^vhLDf&+62jl64*&D+=+`sN_dap_1W%p|KQVYIdgPL5uRE9(c4On)DXndL zLNq?%!-u*zmMxyYc4m4Nr>>=A=s}PkJkqr&E^b9>5g+}c1%X}3|WKcg&spcJQ)05zI<<5LTBhNKRg$XRTi2{j)yl_ zj4~kKOvr+m(;vw~9zVh(zC-y9jqQnguz5r7FRq^MyKuXAENp(TAzUVtg&Ts+B_s7) zGn+fN0sG>9GjsPLKTRrvCd`71IZulJ1_1jO9KWbD&_@2UC+LTNpxxrdz#E|j|2nA9 zzB!UTyfAEJ&#%$pQ>QX#8vk@_a5iqukMF;8`wRKe{BI}5$H%OROs4J1#j)|?p|YSh z_SpR^e`VE#F52;WL{!+L(yZLRh40*KS;@box;9(-tE)`mcVp27O*>Z{_Lb*5T3cJA yr~0nPHtg2+UHi&&$8ha;`+hiaUmw&!n@8(?5PqF(KE5>Ym)EG)p&uyBP5%a8^# + + + + + + +spring-cloud-aws + + + + + + + +

+ + + + + + \ No newline at end of file diff --git a/spring-cloud-aws/1.2.4.RELEASE/multi/css/highlight.css b/spring-cloud-aws/1.2.4.RELEASE/multi/css/highlight.css new file mode 100644 index 00000000..ffefef72 --- /dev/null +++ b/spring-cloud-aws/1.2.4.RELEASE/multi/css/highlight.css @@ -0,0 +1,35 @@ +/* + code highlight CSS resemblign the Eclipse IDE default color schema + @author Costin Leau +*/ + +.hl-keyword { + color: #7F0055; + font-weight: bold; +} + +.hl-comment { + color: #3F5F5F; + font-style: italic; +} + +.hl-multiline-comment { + color: #3F5FBF; + font-style: italic; +} + +.hl-tag { + color: #3F7F7F; +} + +.hl-attribute { + color: #7F007F; +} + +.hl-value { + color: #2A00FF; +} + +.hl-string { + color: #2A00FF; +} \ No newline at end of file diff --git a/spring-cloud-aws/1.2.4.RELEASE/multi/css/manual-multipage.css b/spring-cloud-aws/1.2.4.RELEASE/multi/css/manual-multipage.css new file mode 100644 index 00000000..0c484531 --- /dev/null +++ b/spring-cloud-aws/1.2.4.RELEASE/multi/css/manual-multipage.css @@ -0,0 +1,9 @@ +@IMPORT url("manual.css"); + +body.firstpage { + background: url("../images/background.png") no-repeat center top; +} + +div.part h1 { + border-top: none; +} diff --git a/spring-cloud-aws/1.2.4.RELEASE/multi/css/manual-singlepage.css b/spring-cloud-aws/1.2.4.RELEASE/multi/css/manual-singlepage.css new file mode 100644 index 00000000..4a7fd140 --- /dev/null +++ b/spring-cloud-aws/1.2.4.RELEASE/multi/css/manual-singlepage.css @@ -0,0 +1,6 @@ +@IMPORT url("manual.css"); + +body { + background: url("../images/background.png") no-repeat center top; +} + diff --git a/spring-cloud-aws/1.2.4.RELEASE/multi/css/manual.css b/spring-cloud-aws/1.2.4.RELEASE/multi/css/manual.css new file mode 100644 index 00000000..0ecbe2e8 --- /dev/null +++ b/spring-cloud-aws/1.2.4.RELEASE/multi/css/manual.css @@ -0,0 +1,344 @@ +@IMPORT url("highlight.css"); + +html { + padding: 0pt; + margin: 0pt; +} + +body { + color: #333333; + margin: 15px 30px; + font-family: Helvetica, Arial, Freesans, Clean, Sans-serif; + line-height: 1.6; + -webkit-font-smoothing: antialiased; +} + +code { + font-size: 16px; + font-family: Consolas, "Liberation Mono", Courier, monospace; +} + +:not(a)>code { + color: #6D180B; +} + +:not(pre)>code { + background-color: #F2F2F2; + border: 1px solid #CCCCCC; + border-radius: 4px; + padding: 1px 3px 0; + text-shadow: none; + white-space: nowrap; +} + +body>*:first-child { + margin-top: 0 !important; +} + +div { + margin: 0pt; +} + +hr { + border: 1px solid #CCCCCC; + background: #CCCCCC; +} + +h1,h2,h3,h4,h5,h6 { + color: #000000; + cursor: text; + font-weight: bold; + margin: 30px 0 10px; + padding: 0; +} + +h1,h2,h3 { + margin: 40px 0 10px; +} + +h1 { + margin: 70px 0 30px; + padding-top: 20px; +} + +div.part h1 { + border-top: 1px dotted #CCCCCC; +} + +h1,h1 code { + font-size: 32px; +} + +h2,h2 code { + font-size: 24px; +} + +h3,h3 code { + font-size: 20px; +} + +h4,h1 code,h5,h5 code,h6,h6 code { + font-size: 18px; +} + +div.book,div.chapter,div.appendix,div.part,div.preface { + min-width: 300px; + max-width: 1200px; + margin: 0 auto; +} + +p.releaseinfo { + font-weight: bold; + margin-bottom: 40px; + margin-top: 40px; +} + +div.authorgroup { + line-height: 1; +} + +p.copyright { + line-height: 1; + margin-bottom: -5px; +} + +.legalnotice p { + font-style: italic; + font-size: 14px; + line-height: 1; +} + +div.titlepage+p,div.titlepage+p { + margin-top: 0; +} + +pre { + line-height: 1.0; + color: black; +} + +a { + color: #4183C4; + text-decoration: none; +} + +p { + margin: 15px 0; + text-align: left; +} + +ul,ol { + padding-left: 30px; +} + +li p { + margin: 0; +} + +div.table { + margin: 1em; + padding: 0.5em; + text-align: center; +} + +div.table table,div.informaltable table { + display: table; + width: 100%; +} + +div.table td { + padding-left: 7px; + padding-right: 7px; +} + +.sidebar { + line-height: 1.4; + padding: 0 20px; + background-color: #F8F8F8; + border: 1px solid #CCCCCC; + border-radius: 3px 3px 3px 3px; +} + +.sidebar p.title { + color: #6D180B; +} + +pre.programlisting,pre.screen { + font-size: 15px; + padding: 6px 10px; + background-color: #F8F8F8; + border: 1px solid #CCCCCC; + border-radius: 3px 3px 3px 3px; + clear: both; + overflow: auto; + line-height: 1.4; + font-family: Consolas, "Liberation Mono", Courier, monospace; +} + +table { + border-collapse: collapse; + border-spacing: 0; + border: 1px solid #DDDDDD !important; + border-radius: 4px !important; + border-collapse: separate !important; + line-height: 1.6; +} + +table thead { + background: #F5F5F5; +} + +table tr { + border: none; + border-bottom: none; +} + +table th { + font-weight: bold; +} + +table th,table td { + border: none !important; + padding: 6px 13px; +} + +table tr:nth-child(2n) { + background-color: #F8F8F8; +} + +td p { + margin: 0 0 15px 0; +} + +div.table-contents td p { + margin: 0; +} + +div.important *,div.note *,div.tip *,div.warning *,div.navheader *,div.navfooter *,div.calloutlist * + { + border: none !important; + background: none !important; + margin: 0; +} + +div.important p,div.note p,div.tip p,div.warning p { + color: #6F6F6F; + line-height: 1.6; +} + +div.important code,div.note code,div.tip code,div.warning code { + background-color: #F2F2F2 !important; + border: 1px solid #CCCCCC !important; + border-radius: 4px !important; + padding: 1px 3px 0 !important; + text-shadow: none !important; + white-space: nowrap !important; +} + +.note th,.tip th,.warning th { + display: none; +} + +.note tr:first-child td,.tip tr:first-child td,.warning tr:first-child td + { + border-right: 1px solid #CCCCCC !important; + padding-top: 10px; +} + +div.calloutlist p,div.calloutlist td { + padding: 0; + margin: 0; +} + +div.calloutlist>table>tbody>tr>td:first-child { + padding-left: 10px; + width: 30px !important; +} + +div.important,div.note,div.tip,div.warning { + margin-left: 0px !important; + margin-right: 20px !important; + margin-top: 20px; + margin-bottom: 20px; + padding-top: 10px; + padding-bottom: 10px; +} + +div.toc { + line-height: 1.2; +} + +dl,dt { + margin-top: 1px; + margin-bottom: 0; +} + +div.toc>dl>dt { + font-size: 32px; + font-weight: bold; + margin: 30px 0 10px 0; + display: block; +} + +div.toc>dl>dd>dl>dt { + font-size: 24px; + font-weight: bold; + margin: 20px 0 10px 0; + display: block; +} + +div.toc>dl>dd>dl>dd>dl>dt { + font-weight: bold; + font-size: 20px; + margin: 10px 0 0 0; +} + +tbody.footnotes * { + border: none !important; +} + +div.footnote p { + margin: 0; + line-height: 1; +} + +div.footnote p sup { + margin-right: 6px; + vertical-align: middle; +} + +div.navheader { + border-bottom: 1px solid #CCCCCC; +} + +div.navfooter { + border-top: 1px solid #CCCCCC; +} + +.title { + margin-left: -1em; + padding-left: 1em; +} + +.title>a { + position: absolute; + visibility: hidden; + display: block; + font-size: 0.85em; + margin-top: 0.05em; + margin-left: -1em; + vertical-align: text-top; + color: black; +} + +.title>a:before { + content: "\00A7"; +} + +.title:hover>a,.title>a:hover,.title:hover>a:hover { + visibility: visible; +} + +.title:focus>a,.title>a:focus,.title:focus>a:focus { + outline: 0; +} diff --git a/spring-cloud-aws/1.2.4.RELEASE/multi/images/background.png b/spring-cloud-aws/1.2.4.RELEASE/multi/images/background.png new file mode 100644 index 0000000000000000000000000000000000000000..15dca6fbe2669fae3609605e49c69cc414f1b6ed GIT binary patch literal 18255 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 EKU&lfD*ylh literal 0 HcmV?d00001 diff --git a/spring-cloud-aws/1.2.4.RELEASE/multi/images/callouts/1.png b/spring-cloud-aws/1.2.4.RELEASE/multi/images/callouts/1.png new file mode 100644 index 0000000000000000000000000000000000000000..7d473430b7bec514f7de12f5769fe7c5859e8c5d GIT binary patch literal 329 zcmeAS@N?(olHy`uVBq!ia0vp^JRr;gBp8b2n5}^nQC}X^4DKU-G|w_t}fLBA)Suv#nrW z!^h2QnY_`l!BOq-UXEX{m2up>JTQkX)2m zTvF+fTUlI^nXH#utd~++ke^qgmzgTe~DWM4ffP81J literal 0 HcmV?d00001 diff --git a/spring-cloud-aws/1.2.4.RELEASE/multi/images/callouts/2.png b/spring-cloud-aws/1.2.4.RELEASE/multi/images/callouts/2.png new file mode 100644 index 0000000000000000000000000000000000000000..5d09341b2f6d2ea2d1d5dad5d980f14b4b05dfd2 GIT binary patch literal 353 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 literal 0 HcmV?d00001 diff --git a/spring-cloud-aws/1.2.4.RELEASE/multi/images/logo.png b/spring-cloud-aws/1.2.4.RELEASE/multi/images/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..ade2ce6ed9d9e9f2f4d9c5729a252ee618a0a5a7 GIT binary patch literal 4387 zcmV+;5!~*HP){P%3MJaDx_;_%u2|NZg!>}aqze!Nxc^y8Ao zaMb9>c)3l4zg^w!(u~7spv{7=)Rn#5sM+hyw%MSF!DHa>*1_JcqtAwz$$7Kao2k-{ z$Ktlp=fbSilJ55Bz}~Eo#%^5i?uh^Z5MW6}K~#90-Cc>2qDT-G%qj|s`%n~65K#I5 zADlwl_5$Q6z@8Veu^l@*Ej;tC%&f&?en^rmW8G4Bfs-$nj#hCGIahUzrMVw+I%xQ$E)R)G83X}t`1ui)Ke0b?i}V~=x;*#OP5^AJ z_OVA5<-$S(*dHs3nS@MY=6>c;q3@Q*^@Wc{Iv$8o7%%=lu>Mmu!n-W>7#}U^c;JPI zcIceuet!P2`VsO2g}6x=;JIIdC*&i)%=!Asvn$`C@XK&1|;bH5D_ z=zH7c!N>)KddJ;g59siDEplU|gd&)!`j@>B<Ren; zZ&4m;WDi^gpt1Gv2zv@ph@g01qCEH@j_rY~NI}KjsHjX%MJEA4+|NkF9jCN)QIRhc zFaLQ2c|!z};lxO_~%A+Qex!?*?#BCYPpKKPI zY^8;41BlDH8Ck6C87V0(Eh9w^6@ery;@8d~7@N5%3D&bI&W)5%c0@q##k7>lV_Tmd zdSptXnJFnrN!I{yxMakbDUX|fdg@WJnp;XPU|!EiuDPM4^)e9poGEjf}cm) zQ6T<|r>a)+C6s`;zm+8Q0)h9IA5I2+zPRKWK##xWH90f{l+8s6PUi_;-+}yxY%qW_ zpq+;jDIBj9-3_RCtVLQ8Qlfc6S#9Zl2_?oe1NdkN)R~2omG>pa#E4!j>XLcm?Homv z)0|1pBko@KhMk9$WCm|6Z@xrINc5&Ax^KW7RoSKZ9md31ze)+imI%u9;l1k3P*$se zQB*}|EF)AlQ+s3l9q}umq*6uHfSQl>hxm| zpk$MFHQ|Ize3VlGK<4Y2*By?DAfD8q1chgsqJWf%4u>l#5$sjHAe?MN@FtB=By8>S z{l+gMS0M8kTOy{7HgpDqa)qoeLq8Iyrv*^7Z*ILgv-I>lSDU1yE;shXv=}u0Bm)79 zpZqyHmaO~`DU)SCU_|?m=93u|FsC%Kn)W)5C8=35QKN++ZrT`%n7|YUMOK|G+@yYz zBsTlUk2m2t-|0W}=uS+>_s~eOomO9eNP&(Tp=ivSZj!ZUx>Nu{loG^10u@~^veRv# zmx6;={>X(lfGBI}VRIH%reoDmG+ED&YsLnu8aM$(K>}kY*{WC@uUGg=h+u|R+ppeQ z8xW0SWbtX~n<7Qc(HS71?mA?&;Jqh|!U`bj9XbqsX$b*$gdCZ6vtd|FipbjbhVnr?e>-4~RyzvF<<-Qs^Xc&1 zMG?)OVl#yvh7FZ<%SeB(RSHMUeR^N=4zyT3l&pu{5o$u;~6g>~~oHNaYV8U>0d+O}rOK%P62>-NULqj@}>^cx{|H`VfP%0dmMM*p1WF zX&7F-oZ#fP%2l0M2J7v2y}j5tt-lDZ!(fW)xl~mt!6pa@qT{k(8D&?Dpg3SeTXh;6 zf~))sUYGV!>A5Fl6kB4L;Y5ruG0!VLN%ntyh9Y>!uB?pF4UL3&H(8sVe5^8A((%`i zD&TE8X^@_Brv#AKv}u7iEW65RY1@Y9KX&$iMCPdhIRDn!vkbDmh(BgVGz>E6X3ukb#p2Dx>^YuoxqN> z&w=TuA#hCAbp}GWYhDjUwWLTfU(G?$^s~;HSU;+R{kpFly^j3+BInx<4KBB1x7JYC zq<$);o)bY?S3fKEx%TA&oqlzKyfMhJHsEOBM5vkH=RD7cW|-B?MI_cw{^7Xc1(m9~ zY|dhW*3%mkt3V{KH|x!_zDoEW{pMW71nBgGRd{1G_98WN0`zS#8>d{w#F$=l%EOAr z%><3QQ|3Oe&L`j+o50)eA0I5EhsJJ-CL4Pp#eODK+j12X5>7tPtJ_F0{3hxA#EBq0 z_hMK!&xF{BCJ#;IRAJKJXvA>xffF#F;@O-dBTNdzspmqpEd}QO8>RCjCxVhZ$Qj=7 zR2}p-3O+iPEC&Ddv3l{56Y;_KSR8ur?jWOew%1`587vFmG)reqt>6);xJOkEPixX_ z{l|b+7-b^&p<-59Q+mbk>LvNW)xz2n&o^6%Q5kc+;MAgscwhSWS<|`zCf*UJUuqoa z<7}JNrV&lKxd)Z!9Qg;2$Q}52x!URT=8B-r)87O|Tk=#LvYxcMhJRYjK97YiKRx*c za9yp+cXdp@JVJ%MGumF%FB?1~_+WQq&dK-ySxOAxpFeD-@#iG-6;v%XIA>!=<*f?Urxr1Pj(NRcREqRRHswF zk;j>n(Teu^{w^dPDOsf5TChaEoY0ZZ0HxLA&?f3eiMsB1rnlg`>2#dD*!qoJFO-O# zDCrWg{cyrF-w{wT!XcoZ6_49SkbCa*A$sQp;){qYC;S(1O3w3cji$AzmFPZyvq-oR zB9zXUx8vCzP2=&Mkk|15Nsl{s2rN>b28Gv_ksGXo2Tx7|t-BV%^X`)si!E0pYw*0d zkugG_qAdWw>pV~oF%cFHS5DfTwX}nDVdUvMW>VPMT=ftWp`2Rh#>gcN;X#OonH{0e zOL_oW%w@gelynN~uV8sJ*A8kU8Ggbe>ACN|&Z+?vZRYo$q3wH25x6ZH0y_Z>zGn@q z+emoZVD*LPpV4o0t@IK&<|`Sd%7^EE+hM!+peeAgujC%P7pzCGt(!;Xv%%^faBH_Ny;(iNv1s|C4 z;d>&5#%14t#C1l6)&Gr!&i#K!Jq$4oFjj-|VjfCJn`i+DF_Z1EJu49V8?S zPwDGv&2QHSrR5O5HXg{G@nB7R5}TH^g2M&sd+LD)RJXytSjbGlvUSlLCDnQI^ADq-=ja;k5rFl-Ml_z)VsGybK8TIasZnEcqLXLuyu~zChc% zL%fec%2=ejbK>iOinblMxi=_y`|4Qa38-k_yc%%b?f12SPL~o`>8RHOeg!~?yA8UI zdPCq>pyRk$361H`|12tC<~>R|`r&Ux7=3_f-}_C1MEoyptpet@ckcq;uZ91Q6(ahB zmSI_8^q;YU1bax!&jo6@9(V!xH$g$gmct4GP2JkGq7VKLLV;pn&(9s!GIhyccg;Y= zB;&be0q?i5@bi3XC zN)ZU(_2cjD^OTzYc6Aza?V^lzbs5IC=Zaqs*DUpq28#7tClK{yXb1Wwu?(E7V(JeM8)nOZvWVMX6F08ci!Lcy`N`3 zRmMkqPWG8hB9T1hF%lKAdbyuT9>n{*eLWY6#T%Du@g&n~JQuNGq$r&!4Flu`Bpp*> zh%RqUHzpvFJTmlZEv{9>@llh3hPZWTc7vHflSqO{yBR^VFdRt3()C6mdFU^lWI(SI zk~M4vs4$DM41J8lf+acP)u|5Q7d9H%x_Cd^XHyaDX=#nXqQj zt>&vFvNyJflaQQ&<7Pgco|~IX%Vp9`mUKGA-Zp( zOJtG50yzv2=0Xrx46(Qj83@V53@*$QjdQ#U%j3e3l*8gOAt(xhqztY^3`s$@h$SN! zBqG*0R&KQ7h!Mrc?dl1;Z?K%-#qz}#48ctnwaJt{-T}%C6K=9*n9P7U2?jzG2&y-_ z1)=T&y^dFcS@bqcC$pFgz^e@N_3!Y2&4rmVrc?^b{#WF$vAX{!YjnaHy1PC8t6j!L zL=U>RZ=0Vuyd59RNX(3d7!LK(`xl6rBPrw5(!bs96XC4+vN`n!pkNhnvKs;x&pmV! z^p5t4F5vmbc<*Tg!?VGlB>@XnzNdTWfhvE25$e1Mo;VNrFPPX7U z(3k?AET0>c;EQjdF;|7qmM;id8Z2DH;$?xdi*jLQS;UTmTiQ;84~KpVQTS}!1G7>???1T1M8Y2Y^v{gyWH4>vrEALt zW@fUDlD9Q{=doHaIiz}LsVtu#Tf|>gNSPn)uUj7xxbS*QsNLaH+;@qq1yM5)eX8Xer{FRzM~ z7xK|ff|w#cs13!6!+4oAeiqo&#|^o&-HT^JJ+1KLT73G&i2y$6Z`@c^KzV`9OsHC8!WcLRbRl_HObYx+233S$HvBP zx5xC8NE3$Tk|?#kKW%jS#1E2l4~Dm9y?iNEMtGE`{31iwDR0{;frQ`P~3kjC$lu_eqZs}wAR(baf^>n-dr`hd)oUmm$gnF zbD^_eYPM#zynGxf-a!tS6u8|n_+WHspz~^faii1kX{e03c}{&}W2fu+^!IEjlU-

MvJZJ$)LTqJA+@mbLxmkyPc#tU=W5xPJ%q2sZXv`v(Ui?>!8Tjh_mSOc$O+ zW<-$ZjJfV@LAsB%Biz5w(;fXV?CW1TB9(ujH2(XqZD*&_2O2L-EZJ~mTUSoq*g)q^ zQ!j3qa>DzQ*dH!xN(0O3n$-7HmkYk_eQXG-gI*K|{dncP!DXswNa?P_Z}nzo#*v#J zQ5S9ROsaZ%ZqC6y?VF!Q1^;o|wu*kH=E=`8B``9)uFtN|s?>Xw*7?*`wfqP}<_A~q zd8VVPq*k-7ZPhbSEogsT%F|x0xuT7xdRv7>Rev?4wv{qrDN}+xS$8V5!!ga&#Y1*BgqL?&c}jPc zG_JlfMSD5I%DQQcHXTbGWQtKpeL6yAB|UI5CQ=~#`}=c}Um;E%R)9u^qI0>&GHQ-g zOm;DCkym+{WF$}@UWrV1mtnTPtu!WtY$r7BOpo|N_#mqWGhK#KR0MD7eW*yPaY&xBTRfcG-E5p&`2dq z875XFdy+3GStd(wD_Mg`dys8Xd_houJju_&*4)mZt2Tk1H)DTRJY^_lf>>*ZU2Th5 zWQ3Ly{;kf91GM2s4Vfv8a-fcsXpb+4t> zmM%11X*>M&PQZNVdARf4d*2x!aq1>jOzQ?>>R)(Ok;sOJ)7jfk$Fdif23? z-}3V78&9qod*O;uGk%fEW^;|k`Lo>bOq2iF72o-IGb2gTw+4B~#iYz(oL}sS7|$R2 zDGfrR{|@~AQJ&v(#4u|ZtJP}t520N48P!$8U;|Vfuq=8>E$w`o2Jf`%eqhqbr%IH1zV?O3uDWqKZId-wMQ*MFefpD5X*w@ zok{kNA?%%$F{M!OUcE^^x{~(wkHK|_*9Yg`KNS88FaVH_sda1Xfs6nE002ovPDHLk FV1jwin)(0$ literal 0 HcmV?d00001 diff --git a/spring-cloud-aws/1.2.4.RELEASE/multi/images/warning.png b/spring-cloud-aws/1.2.4.RELEASE/multi/images/warning.png new file mode 100644 index 0000000000000000000000000000000000000000..0d5b5244605adbb7ab05a1549746a9c35490f95b GIT binary patch literal 2130 zcmbVNYg7|w8V(4q($)50y>JmGlLW#g$xLn}Vd2Si)}#|ptPAQp3Bp-3!-lL0;i^LY?;i#f0m5s49g z3h?3rDQg~EDPlm?FKkgKIcWEK-3X6YU0uzs7H|nq84s39r2!5;pF?SI$QqXy^Ko1x zV~zpENvp@<_Bsd`5MabC#3rvCq&$5dg43yGR zAdy0-rWjC#a1N_+kzUMY#pmogD7!DP(9dEKr3c5ngvUq_6>}Y+w-a81v=eSXnIi_+ zI?U>D1q2C!0zHox#XXKH+@|&rPT*OF5yvY$5J|)WwLqnU)c-5;=UChSlQkaY3@^|g z|J5#YBB}=i+n3Ex9bS$P?xJSKLk)-HHII@;3qG#TG^!+aj>0QkO~7kB0+|yM;YrGB zF>Ge@isQ#73%Tp#k_(tInh3U$uJWY-+DND*o}L-CB5g@#9YWWw~pxZ!Obm>yN#ZHFvL0zA3vNCTJ=t?)~`2O1M{L6un=ml<2x zQEYfifmA?Pz0tqRs^2Utt1pU0BQB1eIY0U_I}c1Y#PP7Ci5s7#IJn}xK{G+{_v^Z+1V#$Erodv>d}ew>RP0wzw+GWkGCBlS1Oj5Z!5NK zUuSR6>pa}RSEZ;qE_w1l#`hQX4E67U6NeP zHZ`T&wj0_H)t|Y1thUqnhub?%e)Y07;a^Tq%FO&iQkR&`qG!dh*2WfW(HuRQj*_DI zeCD1bUA|tMwjOb8E|FRIn$pzEU!2j_N}1Z2ig)vbr5xA0rjC70cmI6*%Uf->hWzaZ z{33HABO5q)vRhzDly2l691@+q3O{}NbSzx+I*k@|L4&3leK#$>u+T#TvTELfKb|IH zc23atf3vmfCa0&TWY@iuoA_Pm<0~ttEC*ut`isb^jXS>X^Sp=l?RXN_OJ*&usGXg$ zTlTv;Ch^vhLDf&+62jl64*&D+=+`sN_dap_1W%p|KQVYIdgPL5uRE9(c4On)DXndL zLNq?%!-u*zmMxyYc4m4Nr>>=A=s}PkJkqr&E^b9>5g+}c1%X}3|WKcg&spcJQ)05zI<<5LTBhNKRg$XRTi2{j)yl_ zj4~kKOvr+m(;vw~9zVh(zC-y9jqQnguz5r7FRq^MyKuXAENp(TAzUVtg&Ts+B_s7) zGn+fN0sG>9GjsPLKTRrvCd`71IZulJ1_1jO9KWbD&_@2UC+LTNpxxrdz#E|j|2nA9 zzB!UTyfAEJ&#%$pQ>QX#8vk@_a5iqukMF;8`wRKe{BI}5$H%OROs4J1#j)|?p|YSh z_SpR^e`VE#F52;WL{!+L(yZLRh40*KS;@box;9(-tE)`mcVp27O*>Z{_Lb*5T3cJA yr~0nPHtg2+UHi&&$8ha;`+hiaUmw&!n@8(?5PqF(KE5>Ym)EG)p&uyBP5%a8^# + + 2. Basic setup

2. Basic setup

Before using the Spring Cloud AWS module developers have to pick the dependencies and configure the Spring Cloud AWS module. +The next chapters describe the dependency management and also the basic configuration for the Spring AWS Cloud project.

2.1 Spring Cloud AWS maven dependency management

Spring Cloud AWS module dependencies can be used directly in Maven with a direct configuration +of the particular module. The Spring Cloud AWS module includes all transitive dependencies for the Spring modules and +also the Amazon SDK that are needed to operate the modules. The general dependency configuration will look like this:

<dependencies>
+  <dependency>
+    <groupId>org.springframework.cloud</groupId>
+    <artifactId>spring-cloud-aws-context</artifactId>
+    <version>{spring-cloud-version}</version>
+  </dependency>
+</dependencies>

Different modules can be included by replacing the module name with the respective one (e.g. spring-cloud-aws-messaging +instead of spring-cloud-aws-context)

The example above works with the Maven Central repository. To use the Spring Maven repository (e.g. for milestones or +developer snapshots), you need to specify the repository location in your Maven configuration. For full releases:

<repositories>
+    <repository>
+        <id>io.spring.repo.maven.release</id>
+        <url>https://repo.spring.io/release/</url>
+        <snapshots><enabled>false</enabled></snapshots>
+    </repository>
+</repositories>

For milestones:

<repositories>
+    <repository>
+        <id>io.spring.repo.maven.milestone</id>
+        <url>https://repo.spring.io/milestone/</url>
+        <snapshots><enabled>false</enabled></snapshots>
+    </repository>
+</repositories>

2.2 Amazon SDK configuration

The Spring Cloud AWS configuration is currently done using custom elements provided by Spring Cloud AWS namespaces. +JavaConfig will be supported soon. The configuration setup is done directly in Spring XML configuration files +so that the elements can be directly used. Each module of Spring Cloud AWS provides custom namespaces to allow the modular +use of the modules. A typical XML configuration to use Spring Cloud AWS is outlined below:

<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xmlns:aws-context="http://www.springframework.org/schema/cloud/aws/context"
+       xsi:schemaLocation="http://www.springframework.org/schema/beans
+        https://www.springframework.org/schema/beans/spring-beans.xsd
+        http://www.springframework.org/schema/cloud/aws/context
+        http://www.springframework.org/schema/cloud/aws/context/spring-cloud-aws-context.xsd">
+
+           <aws-context:context-region region="..."/>
+</beans>

2.2.1 SDK credentials configuration

In order to make calls to the Amazon Web Service the credentials must be configured for the the Amazon SDK. Spring Cloud AWS +provides support to configure an application context specific credentials that are used for each service call for requests done +by Spring Cloud AWS components. Therefore there must be exactly one configuration of the credentials for an entire application +context.

[Tip]Tip

The com.amazonaws.auth.DefaultAWSCredentialsProviderChain is used by all the clients if there is no dedicated credentials + provider defined. This will essentially use the following authentication information

  • use the environment variables AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY
  • use the system properties aws.accessKeyId and aws.secretKey
  • use the user specific profile credentials file
  • use the instance profile credentials (see below)

Based on the overall credentials policy there are different options to configure the credentials. The possible ones are described in +the following sub-chapters.

Simple credentials configuration

Credentials for the Amazon SDK consist of an access key (which might be shared) and a secret key (which must not be shared). Both +security attributes can be configured using the XML namespaces for each Amazon SDK service created by the Spring Cloud AWS +module. The overall configuration looks like this

<beans ...>
+  <aws-context:context-credentials>
+   <aws-context:simple-credentials access-key="AKIAIO" secret-key="wJalrXUtnFEMI/K7M" />
+  </aws-context:context-credentials>
+</beans>
[Caution]Caution

The access-key and secret-key should be externalized into property files (e.g. Spring Boot application configuration) +and not be checked in into the source management system.

Instance profile configuration

An instance profile configuration allows to assign +a profile that is authorized by a role while starting an EC2 instance. All calls made from the EC2 instance are then authenticated +with the instance profile specific user role. Therefore there is no dedicated access-key and secret-key needed in the configuration. +The configuration for the instance profile in Spring Cloud AWS looks like this:

<beans ...>
+	<aws-context:context-credentials>
+ 		<aws-context:instance-profile-credentials/>
+ 	</aws-context:context-credentials>
+</beans>

Mixing both security configurations

In some cases it is useful to combine both authentication strategies to allow the application to use the instance profile +with a fallback for an explicit access-key and secret-key configuration. This is useful if the application is tested inside +EC2 (e.g. on a test server) and locally for testing. The next snippet shows a combination of both security configurations.

<beans ...>
+   <aws-context:context-credentials>
+       <aws-context:instance-profile-credentials/>
+       <aws-context:simple-credentials access-key="${accessKey:}" secret-key="${secretKey:}"/>
+   </aws-context:context-credentials>
+</beans>
[Tip]Tip

The access-key and secret-key are defined using a placeholder expressions along with a default value to avoid bootstrap +errors if the properties are not configured at all.

2.2.2 Region configuration

Amazon Web services are available in different regions. Based +on the custom requirements, the user can host the application on different Amazon regions. The spring-cloud-aws-context +module provides a way to define the region for the entire application context.

Explicit region configuration

The region can be explicitly configured using an XML element. This is particularly useful if the region can not be automatically +derived because the application is not hosted on a EC2 instance (e.g. local testing) or the region must be manually overridden.

<beans ...>
+  	<aws-context:context-region region="eu-west-1"/>
+</beans>
[Tip]Tip

It is also allowed to use expressions or placeholders to externalize the configuration and ensure that the region can +be reconfigured with property files or system properties.

Automatic region configuration

If the application context is started inside an EC2 instance, then the region can automatically be fetched from the +instance metadata and therefore must +not be configured statically. The configuration will look like this:

<beans ...>
+  <aws-context:context-region auto-detect="true" />
+</beans>

Service specific region configuration

A region can also be overridden for particular services if one application context consumes services from different regions. +The configuration can be done globally like described above and configured for each service with a region attribute. +The configuration might look like this for a database service (described later)

<beans ...>
+ <aws-context:context-region region="eu-central-1" />
+ <jdbc:data-source ... region="eu-west-1" />
+</beans>
[Note]Note

While it is theoretically possible to use multiple regions per application, we strongly recommend to write applications that +are hosted only inside one region and split the application if it is hosted in different regions at the same time.

2.2.3 Spring Boot auto-configuration

Following the Spring Cloud umbrella project, Spring Cloud AWS also provides dedicated Spring Boot support. Spring Cloud +AWS can be configured using Spring Boot properties and will also automatically guess any sensible configuration based on +the general setup.

Maven dependencies

Spring Cloud AWS provides a dedicated module to enable the Spring Boot support. That module must be added to the general +maven dependency inside the application. The typical configuration will look like this

<dependencies>
+  <dependency>
+    <groupId>org.springframework.cloud</groupId>
+    <artifactId>spring-cloud-aws-autoconfigure</artifactId>
+    <version>{spring-cloud-version}</version>
+  </dependency>
+</dependencies>

Additional dependencies to enable particular features like messaging and JDBC have to be added. Spring Cloud AWS will +only configure classes that are available in the Spring Boot application’s classpath.

Configuring credentials

Spring Boot provides a standard way to define properties with property file or YAML configuration files. Spring Cloud +AWS provides support to configure the credential information with the Spring Boot application configuration files. +Spring Cloud AWS provides the following properties to configure the credentials setup for the whole application.

propertyexampledescription

cloud.aws.credentials.accessKey

AKIAIOSFODNN7EXAMPLE

The access key to be used with a static provider

cloud.aws.credentials.secretKey

wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

The secret key to be used with a static provider

cloud.aws.credentials.instanceProfile

true

Configures an instance profile credentials provider with no further configuration

Configuring region

Like for the credentials, the Spring Cloud AWS module also supports the configuration of the region inside the Spring +Boot configuration files. The region can be automatically detected or explicitly configured (e.g. in case of local tests +against the AWS cloud).

The properties to configure the region are shown below

propertyexampledescription

cloud.aws.region.auto

true

Enables automatic region detection based on the EC2 meta data service

cloud.aws.region.static

eu-west-1

Configures a static region for the application. Possible regions are (currently) us-east-1, us-west-1, us-west-2, +eu-west-1, eu-central-1, ap-southeast-1, ap-southeast-1, ap-northeast-1, sa-east-1, cn-north-1 and any custom region +configured with own region meta data

\ No newline at end of file diff --git a/spring-cloud-aws/1.2.4.RELEASE/multi/multi__caching.html b/spring-cloud-aws/1.2.4.RELEASE/multi/multi__caching.html new file mode 100644 index 00000000..e5d9fc52 --- /dev/null +++ b/spring-cloud-aws/1.2.4.RELEASE/multi/multi__caching.html @@ -0,0 +1,99 @@ + + + 6. Caching

6. Caching

Caching in a cloud environment is useful for applications to reduce the latency and to save database round trips. +Reducing database round trips can significantly reduce the requirements for the database instance. The Spring Framework +provides, since version 3.1, a unified Cache abstraction to allow declarative caching in applications analogous to the +declarative transactions.

Spring Cloud AWS integrates the Amazon ElastiCache service into the Spring unified +caching abstraction providing a cache manager based on the memcached and Redis protocols. The caching support for Spring +Cloud AWS provides its own memcached implementation for ElastiCache and uses +Spring Data Redis for Redis caches.

6.1 Configuring dependencies for Redis caches

Spring Cloud AWS delivers its own implementation of a memcached cache, therefore no other dependencies are needed. For Redis +Spring Cloud AWS relies on Spring Data Redis to support caching and also to allow multiple Redis drivers to be used. Spring +Cloud AWS supports all Redis drivers that Spring Data Redis supports (currently Jedis, JRedis, SRP and Lettuce) with Jedis + being used internally for testing against ElastiCache. A dependency definition for Redis with Jedis is shown in the example

<dependencies>
+    <dependency>
+        <groupId>org.springframework.data</groupId>
+        <artifactId>spring-data-redis</artifactId>
+        <version>${spring-data-redis.version}</version>
+    </dependency>
+    <dependency>
+    	<groupId>redis.clients</groupId>
+    	<artifactId>jedis</artifactId>
+    	<version>2.6.1</version>
+    </dependency>
+</dependencies>

Spring Cloud AWS will automatically detect the Redis driver and will use one of them automatically.

6.2 Configuring caching with XML

The cache support for Spring Cloud AWS resides in the context module and can therefore be used if the context module +is already imported in the project. The cache integration provides its own namespace to configure cache clusters that are +hosted in the Amazon ElastiCache service. The next example contains a configuration for the cache cluster and the Spring +configuration to enable declarative, annotation-based caching.

<beans xmlns:aws-cache="http://www.springframework.org/schema/cloud/aws/cache"
+	   xmlns:cache="http://www.springframework.org/schema/cache"
+	   xmlns="http://www.springframework.org/schema/beans"
+	   xsi:schemaLocation="http://www.springframework.org/schema/cloud/aws/cache
+	   	http://www.springframework.org/schema/cloud/aws/cache/spring-cloud-aws-cache.xsd
+	   	http://www.springframework.org/schema/cache
+	   	https://www.springframework.org/schema/cache/spring-cache.xsd">
+
+	<aws-context:context-credentials>
+		...
+        </aws-context:context-credentials>
+
+	<aws-cache:cache-manager>
+		<aws-cache:cache-cluster name="CacheCluster" />
+	</aws-cache:cache-manager>
+
+	<cache:annotation-driven />
+</beans>

The configuration above configures a cache-manager with one cache with the name CacheCluster that represents an +ElasticCache cluster.

6.2.1 Mixing caches

Applications may have the need for multiple caches that are maintained by one central cache cluster. The Spring Cloud +AWS caching support allows to define multiple caches inside one cache manager and also to use externally defined caches +inside the cache manager.

The example below demonstrates a configuration example that contains a pre-configured cache with a cache-ref element +(which might be a local cache) and a cache-cluster configuration for ElastiCache cache clusters.

<beans ...>
+	<aws-cache:cache-manager id="cacheManager">
+		<aws-cache:cache-ref ref="memcached" />
+		<aws-cache:cache-cluster name="SimpleCache"/>
+	</aws-cache:cache-manager>
+</beans>

6.2.2 Defining expiration

The Spring cache demarcation does not support expiry time configuration and leaves it up to the cache implementation +to support an expiry time. The Spring Cloud AWS cache configuration supports the expiry time setting per cache. The +expiry time will be passed to the memcached service.

The cache-cluster element accepts an expiration attribute that defines the expiration time in seconds. +No configured values implies that there is an infinite expiration time.

<beans>
+	<aws-cache:cache-manager>
+		<aws-cache:cache-cluster expiration="10000" name="CacheCluster" />
+	</aws-cache:cache-manager>
+</beans>

6.3 Configuring caching using Java configuration

Spring Cloud AWS also support the cache configuration with Java configuration classes. On any Configuration class, +the caching can be configured using the org.springframework.cloud.aws.cache.config.annotation.EnableElastiCache +annotation provided by Spring Cloud AWS. The next example shows a configuration of two cache clusters.

@EnableElastiCache({@CacheClusterConfig(name = "firstCache"), @CacheClusterConfig(name = "secondCache")})
+public class ApplicationConfiguration {
+}
[Important]Important

If you leave the value attribute empty, then all the caches inside your CloudFormation stack (if available) +will be configured automatically.

6.3.1 Configuring expiry time for caches

The Java configuration also allows to configure the expiry time for the caches. This can be done for all +caches using the defaultExpiration attribute as shown in the example below.

@EnableElastiCache(defaultExpiration = 23)
+public class ApplicationConfiguration {
+}

The expiration can be defined on a cache level using the @CacheClusterConfig annotations expiration attribute as shown below (using seconds as +the value).

@EnableElastiCache({@CacheClusterConfig(name = "firstCache", expiration = 23), @CacheClusterConfig(name = "secondCache", expiration = 42)})
+public class ApplicationConfiguration {
+}

6.4 Configuring caching in Spring Boot

The caches will automatically be configured in Spring Boot without any explicit configuration property.

6.5 Using caching

Based on the configuration of the cache, developers can annotate their methods to use the caching for method return values. +The next example contains a caching declaration for a service for which the return values should be cached

@Service
+public class ExpensiveService {
+
+    @Cacheable("CacheCluster")
+    public String calculateExpensiveValue(String key) {
+		...
+    }
+}

6.6 Memcached client implementation

There are different memcached client implementations available for Java, the most prominent ones are +Spymemcached and XMemcached. +Amazon AWS supports a dynamic configuration and delivers an enhanced memcached client based on Spymemcached to support the +auto-discovery of new nodes based on +a central configuration endpoint.

Spring Cloud AWS relies on the Amazon ElastiCache Client implementation and therefore has a dependency on that.

6.7 Using CloudFormation

Amazon ElastiCache clusters can also be configured within a stack and then be used by applications. Spring Cloud AWS +also supports the lookup of stack-configured cache clusters by their logical name with the resolution to the physical +name. The example below shows a cache cluster configuration inside a CloudFormation template.

"CacheCluster": {
+	"Type": "AWS::ElastiCache::CacheCluster",
+	"Properties": {
+	    "AutoMinorVersionUpgrade": "true",
+	    "Engine": "memcached",
+	    "CacheNodeType": "cache.t2.micro",
+	    "CacheSubnetGroupName" : "sample",
+	    "NumCacheNodes": "1",
+	    "VpcSecurityGroupIds": ["sample1"]
+	}
+}

The cache cluster can then be used with the name CacheCluster inside the application configuration as shown below:

<beans...>
+    <aws-cache:cache-manager>
+    	<aws-cache:cache-cluster name="CacheCluster" expiration="15"/>
+    </aws-cache:cache-manager>
+<beans>

With the configuration above the application can be deployed with multiple stacks on different environments +without any configuration change inside the application.

\ No newline at end of file diff --git a/spring-cloud-aws/1.2.4.RELEASE/multi/multi__cloud_environment.html b/spring-cloud-aws/1.2.4.RELEASE/multi/multi__cloud_environment.html new file mode 100644 index 00000000..e4b49b86 --- /dev/null +++ b/spring-cloud-aws/1.2.4.RELEASE/multi/multi__cloud_environment.html @@ -0,0 +1,138 @@ + + + 3. Cloud environment

3. Cloud environment

Applications often need environment specific configuration information, especially in changing environments like in the +Amazon cloud environment. Spring Cloud AWS provides a support to retrieve and use environment specific data inside the +application context using common Spring mechanisms like property placeholder or the Spring expression language.

3.1 Retrieving instance metadata

Instance metadata are available inside an +EC2 environment. The metadata can be queried using a special HTTP address that provides the instance metadata. Spring Cloud +AWS enables application to access this metadata directly in expression or property placeholder without the need to call +an external HTTP service.

3.1.1 Enabling instance metadata support with XML

The instance metadata retrieval support is enabled through an XML element like the standard property placeholder in Spring. +The following code sample demonstrates the activation of the instance metadata support inside an application context.

<beans ...>
+  	<aws-context:context-instance-data />
+</beans>
[Tip]Tip

Instance metadata can be retrieved without an authorized service call, therefore the configuration above does not require +any region or security specific configuration.

3.1.2 Enabling instance metadata support with Java

The instance metadata can also be configured within a Java configuration class without the need for an XML configuration. +The next example shows a typical Spring @Configuration class that enables the instance metadata with the +org.springframework.cloud.aws.context.config.annotation.EnableInstanceData

@Configuration
+@EnableContextInstanceData
+public static class ApplicationConfiguration {
+}

3.1.3 Enabling instance metadata support in Spring Boot

The instance metadata is automatically available in a Spring Boot application as a property source if the application +is running on an EC2 instance.

3.1.4 Using instance metadata

Instance metadata can be used in XML, Java placeholders and expressions. The example below demonstrates the usage of +instance metadata inside an XML file using placeholders and also the expression referring to the special variable environment

<beans ...>
+ <bean class="org.springframework.cloud.aws....SimpleConfigurationBean">
+	<property name="value1" value="#{environment.ami-id}" />
+	<property name="value2" value="#{environment.hostname}" />
+	<property name="value3" value="${instance-type}" />
+	<property name="value4" value="${instance-id}" />
+ </bean>
+</beans>

Instance metadata can also be injected with the Spring org.springframework.beans.factory.annotation.Value annotation +directly into Java fields. The next example demonstrates the use of instance metadata inside a Spring bean.

@Component
+public class ApplicationInfoBean {
+
+    @Value("${ami-id:N/A}")
+    private String amiId;
+
+    @Value("${hostname:N/A}")
+    private String hostname;
+
+    @Value("${instance-type:N/A}")
+    private String instanceType;
+
+    @Value("${services/domain:N/A}")
+    private String serviceDomain;
+}
[Note]Note

Every instance metadata can be accessed by the key available in the instance metadata service +Nested properties can be accessed by separating the properties with a slash ('/').

3.1.5 Using instance user data

Besides the default instance metadata it is also possible to configure user data on each instance. This user data is retrieved and +parsed by Spring Cloud AWS. The user data can be defined while starting an EC2 instance with the application. Spring Cloud AWS +expects the format <key>:<value>;<key>:<value> inside the user data so that it can parse the string and extract the key value pairs.

The user data can be configured using either the management console shown below or a CloudFormation template.

User data in the management console

A CloudFormation template snippet for the configuration of the user data is outlined below:

...
+"Resources": {
+ "ApplicationServerInstance": {
+	 "Type": "AWS::EC2::Instance",
+	 "Properties": {
+	  "ImageId": "ami-6a56b81d",
+	  "UserData": {
+	     "Fn::Base64": "data1:value1;data2:value2"
+	   },
+	  "InstanceType": "t1.micro",
+	 }
+}
+...

The user data can be accessed directly in the application context like the instance metadata through placeholders +or expressions.

@Component
+public class SecondConfigurationBean {
+
+	@Value("${data1}")
+	private String firstDataOption;
+
+	@Value("${data2}")
+	private String secondDataOption;
+}

3.1.6 Using instance tags

User configured properties can also be configured with tags instead of user data. Tags are a global concept in the context +of Amazon Web services and used in different services. Spring Cloud AWS supports instance tags also across different +services. Compared to user data, user tags can be updated during runtime, there is no need to stop and restart +the instance.

[Tip]Tip

User data can also be used to execute scripts +on instance startup. Therefore it is useful to leverage instance tags for user configuration and user data to execute scripts +on instance startup.

Instance specific tags can be configured on the instance level through the management console outlined below and +like user data also with a CloudFormation template shown afterwards.

Instance data in the management console

A CloudFormation template snippet for the configuration of the instance tags is outlined below:

...
+"Resources": {
+	"UserTagAndUserDataInstance": {
+		"Type": "AWS::EC2::Instance",
+		"Properties": {
+			"ImageId": "ami-6a56b81d",
+		  	"InstanceType": "t1.micro",
+		  	"Tags": [
+			{
+				"Key": "tag1",
+			  	"Value": "tagv1"
+			},
+			{
+				"Key": "tag3",
+			  	"Value": "tagv3"
+			},
+			{
+				"Key": "tag2",
+			  	"Value": "tagv2"
+			},
+			{
+				"Key": "tag4",
+				"Value": "tagv4"
+			}
+			]
+		}
+	}
+}
+...

To retrieve the instance tags, Spring Cloud AWS has to make authenticated requests and therefore it will need the region +and security configuration before actually resolving the placeholders. Also because the instance tags are not available while starting +the application context, they can only be referenced as expressions and not with placeholders. The context-instance-data +element defines an attribute user-tags-map that will create a map in the application context for the name. This map +can then be queried using expression for other bean definitions.

<beans ...>
+ <aws-context:context-instance-data user-tags-map="instanceData" />
+</beans>

A java bean might resolve expressions with the @Value annotation.

public class SimpleConfigurationBean {
+
+	@Value("#{instanceData.tag1}")
+	private String value1;
+
+	@Value("#{instanceData.tag2}")
+	private String value2;
+
+	@Value("#{instanceData.tag3}")
+	private String value3;
+
+	@Value("#{instanceData.tag4}")
+	private String value4;
+}

3.1.7 Configuring custom EC2 client

In some circumstances it is necessary to have a custom EC2 client to retrieve the instance information. The +context-instance-data element supports a custom EC2 client with the amazon-ec2 attribute. The next +example shows the use of a custom EC2 client that might have a special configuration in place.

<beans ...>
+
+  <aws-context:context-credentials>....</aws-context:context-credentials>
+  <aws-context:context-region ... />
+  <aws-context:context-instance-data  amazon-ec2="myCustomClient"/>
+
+  <bean id="myCustomClient" class="com.amazonaws.services.ec2.AmazonEC2Client">
+	...
+  </bean>
+</beans>

3.1.8 Injecting the default EC2 client

If there are user tags configured for the instance data (see above) Spring Cloud AWS configures an EC2 client with +the specified region and security credentials. Application developers can inject the EC2 client directly into their code using the @Autowired annotation.

public class ApplicationService {
+
+	private final AmazonEC2 amazonEc2;
+
+	@Autowired
+	public ApplicationService(AmazonEC2 amazonEc2) {
+		this.amazonEc2 = amazonEc2;
+	}
+}
\ No newline at end of file diff --git a/spring-cloud-aws/1.2.4.RELEASE/multi/multi__data_access_with_jdbc.html b/spring-cloud-aws/1.2.4.RELEASE/multi/multi__data_access_with_jdbc.html new file mode 100644 index 00000000..cfeace59 --- /dev/null +++ b/spring-cloud-aws/1.2.4.RELEASE/multi/multi__data_access_with_jdbc.html @@ -0,0 +1,187 @@ + + + 7. Data Access with JDBC

7. Data Access with JDBC

Spring has a broad support of data access technologies built on top of JDBC like JdbcTemplate and dedicated ORM (JPA, +Hibernate support). Spring Cloud AWS enables application developers to re-use their JDBC technology of choice and access the +Amazon Relational Database Service with a declarative configuration. The main support provided by Spring +Cloud AWS for JDBC data access are:

  • Automatic data source configuration and setup based on the Amazon RDS database instance.
  • Automatic read-replica detection and configuration for Amazon RDS database instances.
  • Retry-support to handle exception during Multi-AZ failover inside the data center.

7.1 Configuring data source

Before using and configuring the database support, the application has to include the respective module dependency +into its Maven configuration. Spring Cloud AWS JDBC support comes as a separate module to allow the modularized use of the +modules.

7.1.1 Maven dependency configuration

The Spring Cloud AWS JDBC module comes as a standalone module and can be imported with the following dependency declaration.

<dependency>
+	<groupId>org.springframework.cloud</groupId>
+	<artifactId>spring-cloud-aws-jdbc</artifactId>
+	<version>{spring-cloud-version}</version>
+</dependency>

7.1.2 Basic data source configuration

The data source configuration requires the security and region configuration as a minimum allowing Spring Cloud AWS to retrieve +the database metadata information with the Amazon RDS service. Spring Cloud AWS provides an additional jdbc specific namespace +to configure the data source with the minimum attributes as shown in the example:

<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	   xmlns:jdbc="http://www.springframework.org/schema/cloud/aws/jdbc"
+	   xmlns="http://www.springframework.org/schema/beans"
+	   xsi:schemaLocation="http://www.springframework.org/schema/cloud/aws/jdbc
+	   http://www.springframework.org/schema/cloud/aws/jdbc/spring-cloud-aws-jdbc.xsd">
+
+ <aws-context:context-credentials>
+  ...
+ </aws-context:context-credentials>
+
+ <aws-context:context-region region="..."/>
+
+<jdbc:data-source
+		 db-instance-identifier="myRdsDatabase"
+		 password="${rdsPassword}">
+</jdbc:data-source>
+</beans>

The minimum configuration parameters are a unique id for the data source, a valid db-instance-identifier attribute +that points to a valid Amazon RDS database instance. The master user password for the master user. If there is another +user to be used (which is recommended) then the username attribute can be set.

With this configuration Spring Cloud AWS fetches all the necessary metadata and creates a +Tomcat JDBC pool with the default properties. The data source +can be later injected into any Spring Bean as shown below:

@Service
+public class SimpleDatabaseService implements DatabaseService {
+
+ private final JdbcTemplate jdbcTemplate;
+
+ @Autowired
+ public SimpleDatabaseService(DataSource dataSource) {
+ 	this.jdbcTemplate = new JdbcTemplate(dataSource);
+ }
+}

It is possible to qualify the data source injection point with an @Qualifier annotation to allow multiple data source +configurations inside one application context and still use auto-wiring.

7.1.3 Data source pool configuration

Spring Cloud AWS creates a new Tomcat JDBC pool with the default properties. Often these default properties do not meet the +requirements of the application with regards to pool size and other settings. The data source configuration supports the configuration +of all valid pool properties with a nested XML element. The following example demonstrates the re-configuration of the data source +with custom pool properties.

<beans ..>
+
+ <aws-context:context-credentials>
+  ...
+ </aws-context:context-credentials>
+
+ <aws-context:context-region region="..."/>
+
+ <jdbc:data-source
+		 db-instance-identifier="myRdsDatabase"
+		 password="${rdsPassword}">
+		 <jdbc:pool-attributes initialSize="1" " maxActive="200" minIdle="10"
+         		testOnBorrow="true" validationQuery="SELECT 1" />
+ </jdbc:data-source>
+
+</beans>

A full list of all configuration attributes with their value is available here.

7.2 Configuring data source with Java config

Spring Cloud AWS also supports the configuration of the data source within an @Configuration class. The +org.springframework.cloud.aws.jdbc.config.annotation.EnableRdsInstance annotation can be used to configure one data +source. Multiple ones can be used to configure more then one data source. Each annotation will generate exactly one +data source bean.

The class below shows a data source configuration inside a configuration class

@Configuration
+@EnableRdsInstance(dbInstanceIdentifier = "test",password = "secret", readReplicaSupport = true)
+public class ApplicationConfiguration {
+}
[Tip]Tip

The configuration attributes are the same in the XML element. The required attributes are also the same +for the XML configuration (the dbInstanceIdentifier and password attribute)

7.2.1 Java based data source pool configuration

It is also possible to override the pool configuration with custom values. Spring Cloud AWS provides a +org.springframework.cloud.aws.jdbc.config.annotation.RdsInstanceConfigurer that creates a +org.springframework.cloud.aws.jdbc.datasource.DataSourceFactory which might contain custom pool attributes. The next +examples shows the implementation of one configurer that overrides the validation query and the initial size.

@Configuration
+@EnableRdsInstance(dbInstanceIdentifier = "test",password = "secret")
+public class ApplicationConfiguration {
+
+    @Bean
+    public RdsInstanceConfigurer instanceConfigurer() {
+        return new RdsInstanceConfigurer() {
+            @Override
+        	public DataSourceFactory getDataSourceFactory() {
+        		TomcatJdbcDataSourceFactory dataSourceFactory = new TomcatJdbcDataSourceFactory();
+        		dataSourceFactory.setInitialSize(10);
+        		dataSourceFactory.setValidationQuery("SELECT 1 FROM DUAL");
+        		return dataSourceFactory;
+        	}
+        };
+    }
+}
[Tip]Tip

This class returns an anonymous class of type org.springframework.cloud.aws.jdbc.config.annotation.RdsInstanceConfigurer, + which might also of course be a standalone class.

7.3 Configuring data source in Spring Boot

The data sources can also be configured using the Spring Boot configuration files. Because of the dynamic number of +data sources inside one application, the Spring Boot properties must be configured for each data source.

A data source configuration consists of the general property name cloud.aws.rds.<instanceName> for the data source identifier +following the sub properties for the particular data source where instanceName is the name of the concrete instance. The table below +outlines all properties for a data source using test as the instance identifier.

propertyexampledescription

cloud.aws.rds.test

 

The configuration property that configures a data source with the name test

cloud.aws.rds.test.password

verySecret

The password for the db instance test

cloud.aws.rds.test.username

admin

The username for the db instance test (optional)

cloud.aws.rds.test.readReplicaSupport

true

If read-replicas should be used for the data source (see below)

cloud.aws.rds.test.databaseName

fooDb

Custom database name if the default one from rds should not be used

7.4 Read-replica configuration

Amazon RDS allows to use MySQL read-replica +instances to increase the overall throughput of the database by offloading read data access to one or more read-replica +slaves while maintaining the data in one master database.

Spring Cloud AWS supports the use of read-replicas in combination with Spring read-only transactions. If the read-replica +support is enabled, any read-only transaction will be routed to a read-replica instance while using the master database +for write operations.

[Caution]Caution

Using read-replica instances does not guarantee strict ACID semantics for the database +access and should be used with care. This is due to the fact that the read-replica might be behind and a write might not +be immediately visible to the read transaction. Therefore it is recommended to use read-replica instances only for transactions that read +data which is not changed very often and where outdated data can be handled by the application.

The read-replica support can be enabled with the read-replica attribute in the datasource configuration.

<beans ..>
+ <jdbc:data-source db-instance-identifier="RdsSingleMicroInstance"
+	password="${rdsPassword}" read-replica-support="true">
+
+ </jdbc:data-source>
+</beans>

Spring Cloud AWS will search for any read-replica that is created for the master database and route the read-only transactions +to one of the read-replicas that are available. A business service that uses read-replicas can be implemented like shown +in the example.

@Service
+public class SimpleDatabaseService {
+
+	private final JdbcTemplate jdbcTemplate;
+
+	@Autowired
+	public SimpleDatabaseService(DataSource dataSource) {
+		this.jdbcTemplate = new JdbcTemplate(dataSource);
+	}
+
+	@Transactional(readOnly = true)
+	public Person loadAll() {
+		// read data on the read replica
+	}
+
+	@Transactional
+	public void updatePerson(Person person) {
+		// write data into database
+	}
+}

7.5 Failover support

Amazon RDS supports a Multi-AZ fail-over if +one availability zone is not available due to an outage or failure of the primary instance. The replication is synchronous +(compared to the read-replicas) and provides continuous service. Spring Cloud AWS supports a Multi-AZ failover with a retry +mechanism to recover transactions that fail during a Multi-AZ failover.

[Note]Note

In most cases it is better to provide direct feedback to a user instead of trying potentially long and frequent retries within +a user interaction. Therefore the fail-over support is primarily useful for batch application or applications where the +responsiveness of a service call is not critical.

The Spring Cloud AWS JDBC module provides a retry interceptor that can be used to decorate services with an interceptor. +The interceptor will retry the database operation again if there is a temporary error due to a Multi-AZ failover. A Multi-AZ +failover typically lasts only a couple of seconds, therefore a retry of the business transaction will likely succeed.

The interceptor can be configured as a regular bean and then be used by a pointcut expression to decorate the respective +method calls with the interceptor. The interceptor must have a configured database to retrieve the current status (if it +is a temporary fail-over or a permanent error) from the Amazon RDS service.

The configuration for the interceptor can be done with a custom element from the Spring Cloud AWS jdbc namespace and +will be configured like shown:

<beans ..>
+	<jdbc:retry-interceptor id="myInterceptor"
+		db-instance-identifier="myRdsDatabase"
+		max-number-of-retries="10" />
+</beans>

The interceptor itself can be used with any Spring advice configuration to wrap the respective service. A pointcut +for the services shown in the chapter before can be defined as follows:

<beans ..>
+ <aop:config>
+  <aop:advisor advice-ref="myInterceptor" pointcut="bean(simpleDatabaseService)" order="1" />
+ </aop:config>
+</beans>
[Caution]Caution

It is important that the interceptor is called outside the transaction interceptor to ensure that the whole transaction +will be re-executed. Configuring the interceptor inside the transaction interceptor will lead to a permanent error because +the broken connection will never be refreshed.

The configuration above in combination with a transaction configuration will produce the following proxy configuration +for the service.

Retry interceptor

7.6 CloudFormation support

Spring Cloud AWS supports database instances that are configured with CloudFormation. Spring Cloud AWS can use the logical +name inside the database configuration and lookup the concrete database with the generated physical resource name. A database +configuration can be easily configured in CloudFormation with a template definition that might look like the following +example.

"myRdsDatabase": {
+ 	"Type": "AWS::RDS::DBInstance",
+ 	"Properties": {
+ 	 "AllocatedStorage": "5",
+ 	 "DBInstanceClass": "db.t1.micro",
+ 	 "DBName": "test",
+ 	 "Engine": "mysql",
+ 	 "MasterUsername": "admin",
+ 	 "MasterUserPassword": {"Ref":"RdsPassword"},
+ 	 ...
+ 	}
+ },
+ "readReplicaDatabase": {
+ 	"Type": "AWS::RDS::DBInstance",
+ 	"Properties": {
+ 	 "AllocatedStorage" : "5",
+ 	 "SourceDBInstanceIdentifier": {
+ 	 	"Ref": "myRdsDatabase"
+ 	 },
+ 	 "DBInstanceClass": "db.t1.micro"
+ 	}
+ }
+}

The database can then be configured using the name set in the template. Also, the read-replica can +be enabled to use the configured read-replica database in the application. A configuration to use the configured +database is outlined below:

<beans>
+ <aws-context:stack-configuration/>
+
+ <jdbc:data-source db-instance-identifier="myRdsDatabase" password="${rdsPassword}" read-replica-support="true"/>
+</beans>

7.7 Database tags

Amazon RDS instances can also be configured using RDS database specific tags, allowing users to configure database specific +configuration metadata with the database. Database instance specific tags can be configured using the user-tags-map attribute +on the data-source element. Configure the tags support like in the example below:

<jdbc:data-source
+	db-instance-identifier="myRdsDatabase"
+	password="${rdsPassword}" user-tags-map="dbTags" />

That allows the developer to access the properties in the code using expressions like shown in the class below:

public class SampleService {
+
+	@Value("#{dbTags['aws:cloudformation:aws:cloudformation:stack-name']}")
+	private String stackName;
+}
[Note]Note

The database tag aws:cloudformation:aws:cloudformation:stack-name is a default tag that is created if the +database is configured using CloudFormation.

\ No newline at end of file diff --git a/spring-cloud-aws/1.2.4.RELEASE/multi/multi__managing_cloud_environments.html b/spring-cloud-aws/1.2.4.RELEASE/multi/multi__managing_cloud_environments.html new file mode 100644 index 00000000..4ae1ec56 --- /dev/null +++ b/spring-cloud-aws/1.2.4.RELEASE/multi/multi__managing_cloud_environments.html @@ -0,0 +1,85 @@ + + + 4. Managing cloud environments

4. Managing cloud environments

Managing environments manually with the management console does not scale and can become error-prone with the increasing +complexity of the infrastructure. Amazon Web services offers a CloudFormation +service that allows to define stack configuration templates and bootstrap the whole infrastructure with the services. +In order to allow multiple stacks in parallel, each resource in the stack receives a unique physical name that contains +some arbitrary generated name. In order to interact with the stack resources in a unified way Spring Cloud AWS allows +developers to work with logical names instead of the random physical ones.

The next graphics shows a typical stack configuration.

CloudFormation overview

The Template File describes all stack resources with their logical name. The CloudFormation service parses the stack +template file and creates all resources with their physical name. The application can use all the stack configured resources +with the logical name defined in the template. Spring Cloud AWS resolves all logical names into the respective +physical name for the application developer.

4.1 Automatic CloudFormation configuration

If the application runs inside a stack (because the underlying EC2 instance has been bootstrapped within the stack), then +Spring Cloud AWS will automatically detect the stack and resolve all resources from the stack. Application developers +can use all the logical names from the stack template to interact with the services. In the example below, the database +resource is configured using a CloudFormation template, defining a logical name for the database instance.

"applicationDatabase": {
+  "Type": "AWS::RDS::DBInstance",
+  "Properties": {
+  	"AllocatedStorage": "5",
+  	"DBInstanceClass": "db.t1.micro",
+  	"DBName": "test"
+  	...
+  ]
+ }
+}

The datasource is then created and will receive a physical name (e.g. ir142c39k6o5irj) as the database service name. Application +developers can still use the logical name (in this case applicationDatabase) to interact with the database. The example +below shows the stack configuration which is defined by the element aws-context:stack-configuration and resolves automatically +the particular stack. The data-source element uses the logical name for the db-instance-identifier attribute to work with +the database.

<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	   xmlns:aws-context="http://www.springframework.org/schema/cloud/aws/context"
+	   xmlns="http://www.springframework.org/schema/beans"
+	   xsi:schemaLocation="http://www.springframework.org/schema/cloud/aws/context
+	   http://www.springframework.org/schema/cloud/aws/context/spring-cloud-aws-context.xsd">
+
+  <aws-context:context-credentials>
+  	...
+  </aws-context:context-credentials>
+
+  <aws-context:context-region .. />
+
+  <aws-context:stack-configuration/>
+
+  <jdbc:data-source db-instance-identifier="applicationDatabase" ... />
+</beans>
[Tip]Tip

Further detailed information on the Amazon RDS configuration and setup can be found in the respective chapter in this +documentation.

4.2 Manual CloudFormation configuration

If the application is not running inside a stack configured EC2 instance, then the stack configuration must be configured +manually. The configuration consists of an additional element attribute stack-name that will be used to resolve all the +respective stack configuration information at runtime.

<beans ....>
+	...
+  <aws-context:stack-configuration stack-name="myStackName" />
+    ...
+</beans>

4.3 CloudFormation configuration with Java config classes

Spring Cloud AWS also supports the configuration of the CloudFormation support within Java classes avoiding the use of + XML inside the application configuration. Spring Cloud AWS provides the annotation + og.springframework.cloud.aws.context.config.annotation.EnableStackConfiguration that allows the automatic and manual + stack configuration. The next example shows a configuration class that configures the CloudFormation support with an + explicit stack name (here manualStackName).

@Configuration
+@EnableStackConfiguration(stackName = "manualStackName")
+class ApplicationConfiguration {
+}
[Tip]Tip

Do not define the stackName attribute if an automatic stack name should be enabled.

4.4 CloudFormation configuration in Spring Boot

Spring Cloud AWS also supports the configuration of the CloudFormation support within the Spring Boot configuration. The +manual and automatic stack configuration can be defined with properties that are described in the table below.

propertyexampledescription

cloud.aws.stack.name

myStackName

The name of the manually configured stack name that will be used to retrieve the resources.

cloud.aws.stack.auto

true

Enables the automatic stack name detection for the application.

4.5 Manual name resolution

Spring Cloud AWS uses the CloudFormation stack to resolve all resources internally using the logical names. In some circumstances +it might be needed to resolve the physical name inside the application code. Spring Cloud AWS provides a pre-configured +service to resolve the physical stack name based on the logical name. The sample shows a manual stack resource resolution.

@Service
+public class ApplicationService {
+
+ private final ResourceIdResolver resourceIdResolver;
+
+ @Autowired
+ public ApplicationService(ResourceIdResolver resourceIdResolver) {
+ 	this.resourceIdResolver = resourceIdResolver;
+ }
+
+ public void handleApplicationLogic() {
+ 	String physicalBucketName =
+ 		this.resourceIdResolver.resolveToPhysicalResourceId("someLogicalName");
+ }
+}

4.6 Stack Tags

Like for the Amazon EC2 instances, CloudFormation also provides stack specific tags that can be used to +configure stack specific configuration information and receive them inside the application. This can for example be a +stage specific configuration property (like DEV, INT, PRD).

<beans ....>
+	...
+	<aws-context:stack-configuration user-tags-map="stackTags"/>
+	...
+</beans>

The application can then access the stack tags with an expression like #{stackTags.key1}.

4.7 Using custom CloudFormation client

Like for the EC2 configuration setup, the aws-context:stack-configuration element supports a custom CloudFormation client +with a special setup. The client itself can be configured using the amazon-cloud-formation attribute as shown in the example:

<beans>
+	<aws-context:stack-configuration amazon-cloud-formation=""/>
+
+	<bean class="com.amazonaws.services.cloudformation.AmazonCloudFormationClient">
+	</bean>
+</beans>
\ No newline at end of file diff --git a/spring-cloud-aws/1.2.4.RELEASE/multi/multi__messaging.html b/spring-cloud-aws/1.2.4.RELEASE/multi/multi__messaging.html new file mode 100644 index 00000000..30c1ea6f --- /dev/null +++ b/spring-cloud-aws/1.2.4.RELEASE/multi/multi__messaging.html @@ -0,0 +1,208 @@ + + + 5. Messaging

5. Messaging

Spring Cloud AWS provides Amazon SQS and Amazon SNS integration +that simplifies the publication and consumption of messages over SQS or SNS. While SQS fully relies on the messaging API +introduced with Spring 4.0, SNS only partially implements it as the receiving part must be handled differently for +push notifications.

5.1 Configuring messaging

Before using and configuring the messaging support, the application has to include the respective module dependency +into the Maven configuration. Spring Cloud AWS Messaging support comes as a separate module to allow the modularized use +of the modules.

5.1.1 Maven dependency configuration

The Spring Cloud AWS messaging module comes as a standalone module and can be imported with the following dependency declaration:

<dependency>
+	<groupId>org.springframework.cloud</groupId>
+	<artifactId>spring-cloud-aws-messaging</artifactId>
+	<version>{spring-cloud-version}</version>
+</dependency>

5.2 SQS support

Amazon SQS is a hosted messaging service on the Amazon Web Service platform that provides point-to-point communication +with queues. Compared to JMS or other message services Amazon SQS has several features and limitations that should be +taken into consideration.

  • Amazon SQS allows only String payloads, so any Object must be transformed into a String representation. +Spring Cloud AWS has dedicated support to transfer Java objects with Amazon SQS messages by converting them to JSON.
  • Amazon SQS has no transaction support, so messages might therefore be retrieved twice. Application have to be written in +an idempotent way so that they can receive a message twice.
  • Amazon SQS has a maximum message size of 256kb per message, so bigger messages will fail to be sent.

5.2.1 Sending a message

The QueueMessagingTemplate contains many convenience methods to send a message. There are send methods that specify the +destination using a QueueMessageChannel object and those that specify the destination using a string which is going to +be resolved against the SQS API. The send method that takes no destination argument uses the default destination.

import com.amazonaws.services.sqs.AmazonSQS;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.cloud.aws.messaging.core.QueueMessagingTemplate;
+import org.springframework.messaging.support.MessageBuilder;
+
+public class SqsQueueSender {
+
+	private final QueueMessagingTemplate queueMessagingTemplate;
+
+	@Autowired
+	public SqsQueueSender(AmazonSQS amazonSqs) {
+		this.queueMessagingTemplate = new QueueMessagingTemplate(amazonSqs);
+	}
+
+	public void send(String message) {
+		this.queueMessagingTemplate.send("physicalQueueName", MessageBuilder.withPayload(message).build());
+	}
+}

This example uses the MessageBuilder class to create a message with a string payload. The QueueMessagingTemplate is +constructed by passing a reference to the AmazonSQS client. The destination in the send method is a string value that +must match the queue name defined on AWS. This value will be resolved at runtime by the Amazon SQS client. Optionally +a ResourceIdResolver implementation can be passed to the QueueMessagingTemplate constructor to resolve resources by +logical name when running inside a CloudFormation stack (see Chapter 4, Managing cloud environments for more information about +resource name resolution).

With the messaging namespace a QueueMessagingTemplate can be defined in an XML configuration file.

<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xmlns:aws-context="http://www.springframework.org/schema/cloud/aws/context"
+	xmlns:aws-messaging="http://www.springframework.org/schema/cloud/aws/messaging"
+	xmlns="http://www.springframework.org/schema/beans"
+	xsi:schemaLocation="http://www.springframework.org/schema/beans
+		https://www.springframework.org/schema/beans/spring-beans.xsd
+		http://www.springframework.org/schema/cloud/aws/context
+		http://www.springframework.org/schema/cloud/aws/context/spring-cloud-aws-context.xsd
+		http://www.springframework.org/schema/cloud/aws/messaging
+	   	http://www.springframework.org/schema/cloud/aws/messaging/spring-cloud-aws-messaging">
+
+	<aws-context:context-credentials>
+		<aws-context:instance-profile-credentials />
+	</aws-context:context-credentials>
+
+	<aws-messaging:queue-messaging-template id="queueMessagingTemplate" />
+
+</beans>

In this example the messaging namespace handler constructs a new QueueMessagingTemplate. The AmazonSQS client +is automatically created and passed to the template’s constructor based on the provided credentials. If the +application runs inside a configured CloudFormation stack a ResourceIdResolver is passed to the constructor (see +Chapter 4, Managing cloud environments for more information about resource name resolution).

Using message converters

In order to facilitate the sending of domain model objects, the QueueMessagingTemplate has various send methods that +take a Java object as an argument for a message’s data content. The overloaded methods convertAndSend() and +receiveAndConvert() in QueueMessagingTemplate delegate the conversion process to an instance of the MessageConverter +interface. This interface defines a simple contract to convert between Java objects and SQS messages. The default +implementation SimpleMessageConverter simply unwraps the message payload as long as it matches the target type. By +using the converter, you and your application code can focus on the business object that is being sent or received via +SQS and not be concerned with the details of how it is represented as an SQS message.

[Note]Note

As SQS is only able to send String payloads the default converter SimpleMessageConverter should only be used +to send String payloads. For more complex objects a custom converter should be used like the one created by the +messaging namespace handler.

It is recommended to use the XML messaging namespace to create QueueMessagingTemplate as it will set a more +sophisticated MessageConverter that converts objects into JSON when Jackson is on the classpath.

<aws-messaging:queue-messaging-template id="queueMessagingTemplate" />
this.queueMessagingTemplate.convertAndSend("queueName", new Person("John, "Doe"));

In this example a QueueMessagingTemplate is created using the messaging namespace. The convertAndSend method +converts the payload Person using the configured MessageConverter and sends the message.

5.2.2 Receiving a message

There are two ways for receiving SQS messages, either use the receive methods of the QueueMessagingTemplate or with +annotation-driven listener endpoints. The latter is by far the more convenient way to receive messages.

Person person = this.queueMessagingTemplate.receiveAndConvert("queueName", Person.class);

In this example the QueueMessagingTemplate will get one message from the SQS queue and convert it to the target class +passed as argument.

5.2.3 Annotation-driven listener endpoints

Annotation-driven listener endpoints are the easiest way for listening on SQS messages. Simply annotate methods with +MessageMapping and the QueueMessageHandler will route the messages to the annotated methods.

<aws-messaging:annotation-driven-queue-listener />
@SqsListener("queueName")
+public void queueListener(Person person) {
+	// ...
+}

In this example a queue listener container is started that polls the SQS queueName passed to the MessageMapping +annotation. The incoming messages are converted to the target type and then the annotated method queueListener is invoked.

In addition to the payload, headers can be injected in the listener methods with the @Header or @Headers +annotations. @Header is used to inject a specific header value while @Headers injects a Map<String, String> +containing all headers.

[Note]Note

It is recommended to use the XML messaging namespace to create QueueMessagingTemplate as it will set a more +sophisticated MessageConverter that converts objects into JSON when Jackson is on the classpath.

<aws-messaging:queue-messaging-template id="queueMessagingTemplate" />
this.queueMessagingTemplate.convertAndSend("queueName", new Person("John, "Doe"));

In this example a QueueMessagingTemplate is created using the messaging namespace. The convertAndSend method +converts the payload Person using the configured MessageConverter and sends the message. +Only the standard +message attributes sent with an SQS message are supported. Custom attributes are currently not supported.

In addition to the provided argument resolvers, custom ones can be registered on the +aws-messaging:annotation-driven-queue-listener element using the aws-messaging:argument-resolvers attribute (see example below).

<aws-messaging:annotation-driven-queue-listener>
+	<aws-messaging:argument-resolvers>
+		<bean class="org.custom.CustomArgumentResolver" />
+	</aws-messaging:argument-resolvers>
+</aws-messaging:annotation-driven-queue-listener>

By default the SimpleMessageListenerContainer creates a ThreadPoolTaskExecutor with computed values for the core and +max pool sizes. The core pool size is set to twice the number of queues and the max pool size is obtained by multiplying +the number of queues by the value of the maxNumberOfMessages field. If these default values do not meet the need of +the application, a custom task executor can be set with the task-executor attribute (see example below).

<aws-messaging:annotation-driven-queue-listener task-executor="simpleTaskExecutor" />

Message reply

Message listener methods can be annotated with @SendTo to send their return value to another channel. The +SendToHandlerMethodReturnValueHandler uses the defined messaging template set on the +aws-messaging:annotation-driven-queue-listener element to send the return value. The messaging template must implement +the DestinationResolvingMessageSendingOperations interface.

<aws-messaging:annotation-driven-queue-listener send-to-message-template="queueMessagingTemplate"/>
@SqsListener("treeQueue")
+@SendTo("leafsQueue")
+public List<Leaf> extractLeafs(Tree tree) {
+	// ...
+}

In this example the extractLeafs method will receive messages coming from the treeQueue and then return a +List of Leafs which is going to be sent to the leafsQueue. Note that on the +aws-messaging:annotation-driven-queue-listener XML element there is an attribute send-to-message-template +that specifies QueueMessagingTemplate as the messaging template to be used to send the return value of the message +listener method.

5.2.4 The SimpleMessageListenerContainerFactory

The SimpleMessageListenerContainer can also be configured with Java by creating a bean of type SimpleMessageListenerContainerFactory.

@Bean
+public SimpleMessageListenerContainerFactory simpleMessageListenerContainerFactory(AmazonSQSAsync amazonSqs) {
+	SimpleMessageListenerContainerFactory factory = new SimpleMessageListenerContainerFactory();
+	factory.setAmazonSqs(amazonSqs);
+	factory.setAutoStartup(false);
+	factory.setMaxNumberOfMessages(5);
+	// ...
+
+	return factory;
+}

5.2.5 Consuming AWS Event messages with Amazon SQS

It is also possible to receive AWS generated event messages with the SQS message listeners. Because +AWS messages does not contain the mime-type header, the Jackson message converter has to be configured +with the strictContentTypeMatch property false to also parse message without the proper mime type.

The next code shows the configuration of the message converter using the QueueMessageHandlerFactory +and re-configuring the MappingJackson2MessageConverter

@Bean
+public QueueMessageHandlerFactory queueMessageHandlerFactory() {
+	QueueMessageHandlerFactory factory = new QueueMessageHandlerFactory();
+	MappingJackson2MessageConverter messageConverter = new MappingJackson2MessageConverter();
+
+	//set strict content type match to false
+	messageConverter.setStrictContentTypeMatch(false);
+	factory.setArgumentResolvers(Collections.<HandlerMethodArgumentResolver>singletonList(new PayloadArgumentResolver(messageConverter)));
+	return factory;
+}

With the configuration above, it is possible to receive event notification for S3 buckets (and also other + event notifications like elastic transcoder messages) inside @SqsListener annotated methods s shown below.

@SqsListener("testQueue")
+public void receive(S3EventNotification s3EventNotificationRecord) {
+	S3EventNotification.S3Entity s3Entity = s3EventNotificationRecord.getRecords().get(0).getS3();
+}

5.3 SNS support

Amazon SNS is a publish-subscribe messaging system that allows clients to publish notification to a particular topic. Other +interested clients may subscribe using different protocols like HTTP/HTTPS, e-mail or an Amazon SQS queue to receive the messages.

The next graphic shows a typical example of an Amazon SNS architecture.

SNS Overview

Spring Cloud AWS supports Amazon SNS by providing support to send notifications with a NotificationMessagingTemplate and +to receive notifications with the HTTP/HTTPS endpoint using the Spring Web MVC @Controller based programming model. Amazon +SQS based subscriptions can be used with the annotation-driven message support that is provided by the Spring Cloud AWS messaging module.

5.3.1 Sending a message

The NotificationMessagingTemplate contains two convenience methods to send a notification. The first one specifies the +destination using a String which is going to be resolved against the SNS API. The second one takes no destination +argument and uses the default destination. All the usual send methods that are available on the MessageSendingOperations +are implemented but are less convenient to send notifications because the subject must be passed as header.

[Note]Note

Currently only String payloads can be sent using the NotificationMessagingTemplate as this is the expected +type by the SNS API.

import com.amazonaws.services.sns.AmazonSNS;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.cloud.aws.messaging.core.NotificationMessagingTemplate;
+
+public class SnsNotificationSender {
+
+	private final NotificationMessagingTemplate notificationMessagingTemplate;
+
+	@Autowired
+	public SnsNotificationSender(AmazonSNS amazonSns) {
+		this.notificationMessagingTemplate = new NotificationMessagingTemplate(amazonSns);
+	}
+
+	public void send(String subject, String message) {
+		this.notificationMessagingTemplate.sendNotification("physicalTopicName", message, subject);
+	}
+}

This example constructs a new NotificationMessagingTemplate by passing an AmazonSNS client as argument. In the send +method the convenience sendNotification method is used to send a message with subject to an SNS topic. The +destination in the sendNotification method is a string value that must match the topic name defined on AWS. This value +is resolved at runtime by the Amazon SNS client. Optionally a ResourceIdResolver implementation can be passed to the +NotificationMessagingTemplate constructor to resolve resources by logical name when running inside a CloudFormation stack. +(See Chapter 4, Managing cloud environments for more information about resource name resolution.)

It is recommended to use the XML messaging namespace to create NotificationMessagingTemplate as it will automatically +configure the SNS client to setup the default converter.

<aws-messaging:notification-messaging-template id="notificationMessagingTemplate" />

5.3.2 Annotation-driven HTTP notification endpoint

SNS supports multiple endpoint types (SQS, Email, HTTP, HTTPS), Spring Cloud AWS provides support for HTTP(S) endpoints. +SNS sends three type of requests to an HTTP topic listener endpoint, for each of them annotations are provided:

  • Subscription request → @NotificationSubscriptionMapping
  • Notification request → @NotificationMessageMapping
  • Unsubscription request → @NotificationUnsubscribeMapping

HTTP endpoints are based on Spring MVC controllers. Spring Cloud AWS added some custom argument resolvers to extract +the message and subject out of the notification requests.

@Controller
+@RequestMapping("/topicName")
+public class NotificationTestController {
+
+	@NotificationSubscriptionMapping
+	public void handleSubscriptionMessage(NotificationStatus status) throws IOException {
+		//We subscribe to start receive the message
+		status.confirmSubscription();
+	}
+
+	@NotificationMessageMapping
+	public void handleNotificationMessage(@NotificationSubject String subject, @NotificationMessage String message) {
+		// ...
+	}
+
+	@NotificationUnsubscribeConfirmationMapping
+	public void handleUnsubscribeMessage(NotificationStatus status) {
+		//e.g. the client has been unsubscribed and we want to "re-subscribe"
+		status.confirmSubscription();
+	}
+}
[Caution]Caution

Currently it is not possible to define the mapping URL on the method level therefore the RequestMapping must +be done at type level and must contain the full path of the endpoint.

This example creates a new Spring MVC controller with three methods to handle the three requests listed above. In order +to resolve the arguments of the handleNotificationMessage methods a custom argument resolver must be registered. The +XML configuration is listed below.

<mvc:annotation-driven>
+	<mvc:argument-resolvers>
+		<ref bean="notificationResolver" />
+	</mvc:argument-resolvers>
+</mvc:annotation-driven>
+
+<aws-messaging:notification-argument-resolver id="notificationResolver" />

The aws-messaging:notification-argument-resolver element registers three argument resolvers: +NotificationStatusHandlerMethodArgumentResolver, NotificationMessageHandlerMethodArgumentResolver, +and NotificationSubjectHandlerMethodArgumentResolver.

5.4 Using CloudFormation

Amazon SQS queues and SNS topics can be configured within a stack and then be used by applications. Spring Cloud AWS +also supports the lookup of stack-configured queues and topics by their logical name with the resolution to the physical +name. The example below shows an SNS topic and SQS queue configuration inside a CloudFormation template.

"LogicalQueueName": {
+	"Type": "AWS::SQS::Queue",
+	"Properties": {
+	}
+},
+"LogicalTopicName": {
+	"Type": "AWS::SNS::Topic",
+	"Properties": {
+  	}
+}

The logical names LogicalQueueName and LogicalTopicName can then be used in the configuration and in the application +as shown below:

<aws-messaging:queue-messaging-template default-destination="LogicalQueueName" />
+
+<aws-messaging:notification-messaging-template default-destination="LogicalTopicName" />
@SqsListener("LogicalQueueName")
+public void receiveQueueMessages(Person person) {
+	// Logical names can also be used with messaging templates
+	this.notificationMessagingTemplate.sendNotification("anotherLogicalTopicName", "Message", "Subject");
+}

When using the logical names like in the example above, the stack can be created on different environments without any +configuration or code changes inside the application.

\ No newline at end of file diff --git a/spring-cloud-aws/1.2.4.RELEASE/multi/multi__resource_handling.html b/spring-cloud-aws/1.2.4.RELEASE/multi/multi__resource_handling.html new file mode 100644 index 00000000..eafb7ba7 --- /dev/null +++ b/spring-cloud-aws/1.2.4.RELEASE/multi/multi__resource_handling.html @@ -0,0 +1,107 @@ + + + 9. Resource handling

9. Resource handling

The Spring Framework provides a org.springframework.core.io.ResourceLoader abstraction to load files from the filesystem, +servlet context and the classpath. Spring Cloud AWS adds support for the Amazon S3 service +to load and write resources with the resource loader and the s3 protocol.

The resource loader is part of the context module, therefore no additional dependencies are necessary to use the resource +handling support.

9.1 Configuring the resource loader

Spring Cloud AWS does not modify the default resource loader unless it encounters an explicit configuration with an XML namespace element. +The configuration consists of one element for the whole application context that is shown below:

<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	   xmlns:aws-context="http://www.springframework.org/schema/cloud/aws/context"
+	   xsi:schemaLocation="http://www.springframework.org/schema/cloud/aws/context
+	   http://www.springframework.org/schema/cloud/aws/context/spring-cloud-aws-context.xsd">
+
+	<aws-context:context-credentials>
+    		...
+        </aws-context:context-credentials>
+
+	<aws-context:context-resource-loader/>
+</beans>

9.2 Downloading files

Downloading files can be done by using the s3 protocol to reference Amazon S3 buckets and objects inside their bucket. The +typical pattern is s3://<bucket>/<object> where bucket is the global and unique bucket name and object is a valid object +name inside the bucket. The object name can be a file in the root folder of a bucket or a nested file within a directory +inside a bucket.

The next example demonstrates the use of the resource loader to load different resources.

public class SimpleResourceLoadingBean {
+
+	@Autowired
+	private ResourceLoader resourceLoader;
+
+	public void resourceLoadingMethod() throws IOException {
+		Resource resource = this.resourceLoader.getResource("s3://myBucket/rootFile.log");
+		Resource secondResource = this.resourceLoader.getResource("s3://myBucket/rootFolder/subFile");
+
+		InputStream inputStream = resource.getInputStream();
+		//read file
+	}
+}

9.3 Uploading files

Since Spring Framework 3.1 the resource loader can also be used to upload files with the org.springframework.core.io.WritableResource +interface which is a specialization of the org.springframework.core.io.ResourceLoader interface. Clients can upload files +using the WritableResource interface. The next example demonstrates an upload of a resource using the resource loader.

public class SimpleResourceLoadingBean {
+
+    @Autowired
+    private ResourceLoader resourceLoader;
+
+    public void writeResource() throws IOException {
+        Resource resource = this.resourceLoader.getResource("s3://myBucket/rootFile.log");
+        WritableResource writableResource = (WritableResource) resource;
+        try (OutputStream outputStream = writableResource.getOutputStream()) {
+            outputStream.write("test".getBytes());
+        }
+    }
+}

9.3.1 Uploading multi-part files

Amazon S3 supports multi-part uploads to +increase the general throughput while uploading. Spring Cloud AWS by default only uses one thread to upload the files and +therefore does not provide parallel upload support. Users can configure a custom org.springframework.core.task.TaskExecutor +for the resource loader. The resource loader will queue multiple threads at the same time to use parallel multi-part uploads.

The configuration for a resource loader that uploads with 10 Threads looks like the following

<beans ...>
+  <aws-context:context-resource-loader task-executor="executor" />
+  <task:executor id="executor" pool-size="10" queue-capacity="0" rejection-policy="CALLER_RUNS" />
+</beans>
[Warning]Warning

Spring Cloud AWS consumes up to 5 MB (at a minimum) of memory per thread. Therefore each parallel thread will incur +a memory footprint of 5 MB in the heap, and a thread size of 10 will consume therefore up to 50 mb of heap space. Spring Cloud +AWS releases the memory as soon as possible. Also, the example above shows that there is no queue-capacity configured, +because queued requests would also consume memory.

9.3.2 Uploading with the TransferManager

The Amazon SDK also provides a high-level abstraction that is useful to upload files, also with multiple threads using +the multi-part functionality. A com.amazonaws.services.s3.transfer.TransferManager can be easily created in the application +code and injected with the pre-configured com.amazonaws.services.s3.AmazonS3 client that is already created +with the Spring Cloud AWS resource loader configuration.

This example shows the use of the transferManager within an application to upload files from the hard-drive.

public class SimpleResourceLoadingBean {
+
+	@Autowired
+	private AmazonS3 amazonS3;
+
+	public void withTransferManager() {
+		TransferManager transferManager = new TransferManager(this.amazonS3);
+		transferManager.upload("myBucket","filename",new File("someFile"));
+	}
+}

9.4 Searching resources

The Spring resource loader also supports collecting resources based on an Ant-style path specification. Spring Cloud AWS +offers the same support to resolve resources within a bucket and even throughout buckets. The next example shows the resource +resolution by using different patterns.

public class SimpleResourceLoadingBean {
+
+	@Autowired
+ 	private ResourcePatternResolver resourcePatternResolver;
+
+ 	public void resolveAndLoad() throws IOException {
+ 		Resource[] allTxtFilesInFolder =  this.resourcePatternResolver.getResources("s3://bucket/name/*.txt");
+ 		Resource[] allTxtFilesInBucket =  this.resourcePatternResolver.getResources("s3://bucket/**/*.txt");
+ 		Resource[] allTxtFilesGlobally =  this.resourcePatternResolver.getResources("s3://**/*.txt");
+ 	}
+}
[Warning]Warning

Resolving resources throughout all buckets can be very time consuming depending on the number of buckets a user owns.

9.5 Using CloudFormation

CloudFormation also allows to create buckets during stack creation. These buckets will typically have a generated name +that must be used as the bucket name. In order to allow application developers to define static names inside their +configuration, Spring Cloud AWS provides support to resolve the generated bucket names. +Application developers can use the org.springframework.cloud.aws.core.env.ResourceIdResolver interface to resolve the +physical names that are generated based on the logical names.

The next example shows a bucket definition inside a CloudFormation stack template. The bucket will be created with a name +like integrationteststack-sampleBucket-23qysofs62tc2

{
+	"Resources": {
+		"sampleBucket": {
+			"Type": "AWS::S3::Bucket"
+		}
+	}
+}

Application developers can resolve that name and use it to load resources as shown in the next example below.

public class SimpleResourceLoadingBean {
+
+	private final ResourceLoader loader;
+	private final ResourceIdResolver idResolver;
+
+	@Autowired
+	public SimpleResourceLoadingBean(ResourceLoader loader, ResourceIdResolver idResolver) {
+		this.loader = loader;
+		this.idResolver = idResolver;
+	}
+
+	public void resolveAndLoad() {
+		String sampleBucketName = this.idResolver.
+			resolveToPhysicalResourceId("sampleBucket");
+		Resource resource = this.loader.
+			getResource("s3://" + sampleBucketName + "/test");
+	}
+}
\ No newline at end of file diff --git a/spring-cloud-aws/1.2.4.RELEASE/multi/multi__sending_mails.html b/spring-cloud-aws/1.2.4.RELEASE/multi/multi__sending_mails.html new file mode 100644 index 00000000..8265ea1c --- /dev/null +++ b/spring-cloud-aws/1.2.4.RELEASE/multi/multi__sending_mails.html @@ -0,0 +1,94 @@ + + + 8. Sending mails

8. Sending mails

Spring has a built-in support to send e-mails based on the Java Mail API +to avoid any static method calls while using the Java Mail API and thus supporting the testability of an application. +Spring Cloud AWS supports the Amazon SES as an implementation of the Spring Mail abstraction.

As a result Spring Cloud AWS users can decide to use the Spring Cloud AWS implementation of the Amazon SES service or +use the standard Java Mail API based implementation that sends e-mails via SMTP to Amazon SES.

[Tip]Tip

It is preferred to use the Spring Cloud AWS implementation instead of SMTP mainly for performance reasons. +Spring Cloud AWS uses one API call to send a mail message, while the SMTP protocol makes multiple requests (EHLO, MAIL FROM, RCPT TO, DATA, QUIT) +until it sends an e-mail.

8.1 Configuring the mail sender

Spring Cloud AWS provides an XML element to configure a Spring org.springframework.mail.MailSender implementation for the +client to be used. The default mail sender works without a Java Mail dependency and is capable of sending messages without +attachments as simple mail messages. A configuration with the necessary elements will look like this:

<beans xmlns:aws-mail="http://www.springframework.org/schema/cloud/aws/mail"
+   xsi:schemaLocation="http://www.springframework.org/schema/cloud/aws/mail
+      http://www.springframework.org/schema/cloud/aws/mail/spring-cloud-aws-mail.xsd">
+
+	<aws-context:context-credentials>
+	  ..
+	</aws-context:context-credentials>
+
+	<aws-context:context-region region="eu-west-1" />
+
+	<aws-mail:mail-sender id="testSender" />
+
+</beans>

8.2 Sending simple mails

Application developers can inject the MailSender into their application code and directly send simple text based e-mail +messages. The sample below demonstrates the creation of a simple mail message.

public class MailSendingService {
+
+	private MailSender mailSender;
+
+	@Autowired
+	public MailSendingService(MailSender mailSender) {
+		this.mailSender = mailSender;
+	}
+
+	public void sendMailMessage() {
+		SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
+		simpleMailMessage.setFrom("foo@bar.com");
+		simpleMailMessage.setTo("bar@baz.com");
+		simpleMailMessage.setSubject("test subject");
+		simpleMailMessage.setText("test content");
+		this.mailSender.send(simpleMailMessage);
+	}
+}

8.3 Sending attachments

Sending attachments with e-mail requires MIME messages to be created and sent. In order to create MIME messages, +the Java Mail dependency is required and has to be included in the classpath. Spring Cloud AWS will detect the +dependency and create a org.springframework.mail.javamail.JavaMailSender implementation that allows to create and +build MIME messages and send them. A dependency configuration for the Java Mail API is the only change in the configuration +which is shown below.

<dependency>
+	<groupId>javax.mail</groupId>
+	<artifactId>mailapi</artifactId>
+	<version>1.4.1</version>
+	<exclusions>
+		<!-- exclusion because we are running on Java 1.7 that includes the activation API by default-->
+		<exclusion>
+			<artifactId>activation</artifactId>
+			<groupId>javax.activation</groupId>
+		</exclusion>
+	</exclusions>
+</dependency>
[Note]Note

Even though there is a dependency to the Java Mail API there is still the Amazon SES API used underneath to send mail +messages. There is no SMTP setup required +on the Amazon AWS side.

Sending the mail requires the application developer to use the JavaMailSender to send an e-mail as shown in the example +below.

public class MailSendingService {
+
+	private JavaMailSender mailSender;
+
+   	@Autowired
+	public MailSendingService(JavaMailSender mailSender) {
+		this.mailSender = mailSender;
+	}
+
+	public void sendMailMessage() {
+		this.mailSender.send(new MimeMessagePreparator() {
+
+   			@Override
+   			public void prepare(MimeMessage mimeMessage) throws Exception {
+   				MimeMessageHelper helper =
+   					new MimeMessageHelper(mimeMessage, true, "UTF-8");
+   				helper.addTo("foo@bar.com");
+   				helper.setFrom("bar@baz.com");
+   				helper.addAttachment("test.txt", ...);
+   				helper.setSubject("test subject with attachment");
+   				helper.setText("mime body", false);
+   			}
+   		});
+	}
+}

8.4 Configuring regions

Amazon SES is not available in all regions of the +Amazon Web Services cloud. Therefore an application hosted and operated in a region that does not support the mail +service will produce an error while using the mail service. Therefore the region must be overridden for the mail +sender configuration. The example below shows a typical combination of a region (EU-CENTRAL-1) that does not provide +an SES service where the client is overridden to use a valid region (EU-WEST-1).

<beans ...>
+
+ <aws-context:context-region region="eu-central-1" />
+ <aws-mail:mail-sender id="testSender" region="eu-west-1"/>
+
+</beans>

8.5 Authenticating e-mails

To avoid any spam attacks on the Amazon SES mail service, applications without production access must +verify each +e-mail receiver otherwise the mail sender will throw a com.amazonaws.services.simpleemail.model.MessageRejectedException.

Production access can be requested +and will disable the need for mail address verification.

\ No newline at end of file diff --git a/spring-cloud-aws/1.2.4.RELEASE/multi/multi__using_amazon_web_services.html b/spring-cloud-aws/1.2.4.RELEASE/multi/multi__using_amazon_web_services.html new file mode 100644 index 00000000..d8a516f0 --- /dev/null +++ b/spring-cloud-aws/1.2.4.RELEASE/multi/multi__using_amazon_web_services.html @@ -0,0 +1,17 @@ + + + 1. Using Amazon Web Services

1. Using Amazon Web Services

Amazon provides a Java SDK to issue requests for the all services provided by the +Amazon Web Service platform. Using the SDK, application developers still have to integrate the +SDK into their application with a considerable amount of infrastructure related code. Spring Cloud AWS provides application +developers already integrated Spring-based modules to consume services and avoid infrastructure related code as much as possible. +The Spring Cloud AWS module provides a module set so that application developers can arrange the dependencies based on +their needs for the particular services. The graphic below provides a general overview of all Spring Cloud AWS modules along +with the service support for the respective Spring Cloud AWS services.

Overview
  • Spring Cloud AWS Core is the core module of Spring Cloud AWS providing basic services for security and configuration +setup. Developers will not use this module directly but rather through other modules. The core module provides support for +cloud based environment configurations providing direct access to the instance based EC2 +metadata and the overall application stack specific CloudFormation metadata.
  • Spring Cloud AWS Context delivers access to the Simple Storage Service via the Spring +resource loader abstraction. Moreover developers can send e-mails using the Simple E-Mail Service +and the Spring mail abstraction. Further the developers can introduce declarative caching using the Spring caching support +and the ElastiCache caching service.
  • Spring Cloud AWS JDBC provides automatic datasource lookup and configuration for the Relational Database Service +which can be used with JDBC or any other support data access technology by Spring.
  • Spring Cloud AWS Messaging enables developers to receive and send messages with the Simple Queueing Service for +point-to-point communication. Publish-subscribe messaging is supported with the integration of the Simple Notification Service.
\ No newline at end of file diff --git a/spring-cloud-aws/1.2.4.RELEASE/multi/multi_pr01.html b/spring-cloud-aws/1.2.4.RELEASE/multi/multi_pr01.html new file mode 100644 index 00000000..e17686f0 --- /dev/null +++ b/spring-cloud-aws/1.2.4.RELEASE/multi/multi_pr01.html @@ -0,0 +1,3 @@ + + +

Spring Cloud for Amazon Web Services, 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.

[Note]Note

Spring Cloud is released under the non-restrictive Apache 2.0 license. If you would like to contribute to this section of the documentation or if you find an error, please find the source code and issue trackers in the project at github.

\ No newline at end of file diff --git a/spring-cloud-aws/1.2.4.RELEASE/multi/multi_spring-cloud-aws.html b/spring-cloud-aws/1.2.4.RELEASE/multi/multi_spring-cloud-aws.html new file mode 100644 index 00000000..6d1f1014 --- /dev/null +++ b/spring-cloud-aws/1.2.4.RELEASE/multi/multi_spring-cloud-aws.html @@ -0,0 +1,3 @@ + + + Spring Cloud AWS

Spring Cloud AWS

Authors

Agim Emruli, Alain Sahli

Table of Contents

1. Using Amazon Web Services
2. Basic setup
2.1. Spring Cloud AWS maven dependency management
2.2. Amazon SDK configuration
2.2.1. SDK credentials configuration
Simple credentials configuration
Instance profile configuration
Mixing both security configurations
2.2.2. Region configuration
Explicit region configuration
Automatic region configuration
Service specific region configuration
2.2.3. Spring Boot auto-configuration
Maven dependencies
Configuring credentials
Configuring region
3. Cloud environment
3.1. Retrieving instance metadata
3.1.1. Enabling instance metadata support with XML
3.1.2. Enabling instance metadata support with Java
3.1.3. Enabling instance metadata support in Spring Boot
3.1.4. Using instance metadata
3.1.5. Using instance user data
3.1.6. Using instance tags
3.1.7. Configuring custom EC2 client
3.1.8. Injecting the default EC2 client
4. Managing cloud environments
4.1. Automatic CloudFormation configuration
4.2. Manual CloudFormation configuration
4.3. CloudFormation configuration with Java config classes
4.4. CloudFormation configuration in Spring Boot
4.5. Manual name resolution
4.6. Stack Tags
4.7. Using custom CloudFormation client
5. Messaging
5.1. Configuring messaging
5.1.1. Maven dependency configuration
5.2. SQS support
5.2.1. Sending a message
Using message converters
5.2.2. Receiving a message
5.2.3. Annotation-driven listener endpoints
Message reply
5.2.4. The SimpleMessageListenerContainerFactory
5.2.5. Consuming AWS Event messages with Amazon SQS
5.3. SNS support
5.3.1. Sending a message
5.3.2. Annotation-driven HTTP notification endpoint
5.4. Using CloudFormation
6. Caching
6.1. Configuring dependencies for Redis caches
6.2. Configuring caching with XML
6.2.1. Mixing caches
6.2.2. Defining expiration
6.3. Configuring caching using Java configuration
6.3.1. Configuring expiry time for caches
6.4. Configuring caching in Spring Boot
6.5. Using caching
6.6. Memcached client implementation
6.7. Using CloudFormation
7. Data Access with JDBC
7.1. Configuring data source
7.1.1. Maven dependency configuration
7.1.2. Basic data source configuration
7.1.3. Data source pool configuration
7.2. Configuring data source with Java config
7.2.1. Java based data source pool configuration
7.3. Configuring data source in Spring Boot
7.4. Read-replica configuration
7.5. Failover support
7.6. CloudFormation support
7.7. Database tags
8. Sending mails
8.1. Configuring the mail sender
8.2. Sending simple mails
8.3. Sending attachments
8.4. Configuring regions
8.5. Authenticating e-mails
9. Resource handling
9.1. Configuring the resource loader
9.2. Downloading files
9.3. Uploading files
9.3.1. Uploading multi-part files
9.3.2. Uploading with the TransferManager
9.4. Searching resources
9.5. Using CloudFormation
\ No newline at end of file diff --git a/spring-cloud-aws/1.2.4.RELEASE/single/css/highlight.css b/spring-cloud-aws/1.2.4.RELEASE/single/css/highlight.css new file mode 100644 index 00000000..ffefef72 --- /dev/null +++ b/spring-cloud-aws/1.2.4.RELEASE/single/css/highlight.css @@ -0,0 +1,35 @@ +/* + code highlight CSS resemblign the Eclipse IDE default color schema + @author Costin Leau +*/ + +.hl-keyword { + color: #7F0055; + font-weight: bold; +} + +.hl-comment { + color: #3F5F5F; + font-style: italic; +} + +.hl-multiline-comment { + color: #3F5FBF; + font-style: italic; +} + +.hl-tag { + color: #3F7F7F; +} + +.hl-attribute { + color: #7F007F; +} + +.hl-value { + color: #2A00FF; +} + +.hl-string { + color: #2A00FF; +} \ No newline at end of file diff --git a/spring-cloud-aws/1.2.4.RELEASE/single/css/manual-multipage.css b/spring-cloud-aws/1.2.4.RELEASE/single/css/manual-multipage.css new file mode 100644 index 00000000..0c484531 --- /dev/null +++ b/spring-cloud-aws/1.2.4.RELEASE/single/css/manual-multipage.css @@ -0,0 +1,9 @@ +@IMPORT url("manual.css"); + +body.firstpage { + background: url("../images/background.png") no-repeat center top; +} + +div.part h1 { + border-top: none; +} diff --git a/spring-cloud-aws/1.2.4.RELEASE/single/css/manual-singlepage.css b/spring-cloud-aws/1.2.4.RELEASE/single/css/manual-singlepage.css new file mode 100644 index 00000000..4a7fd140 --- /dev/null +++ b/spring-cloud-aws/1.2.4.RELEASE/single/css/manual-singlepage.css @@ -0,0 +1,6 @@ +@IMPORT url("manual.css"); + +body { + background: url("../images/background.png") no-repeat center top; +} + diff --git a/spring-cloud-aws/1.2.4.RELEASE/single/css/manual.css b/spring-cloud-aws/1.2.4.RELEASE/single/css/manual.css new file mode 100644 index 00000000..0ecbe2e8 --- /dev/null +++ b/spring-cloud-aws/1.2.4.RELEASE/single/css/manual.css @@ -0,0 +1,344 @@ +@IMPORT url("highlight.css"); + +html { + padding: 0pt; + margin: 0pt; +} + +body { + color: #333333; + margin: 15px 30px; + font-family: Helvetica, Arial, Freesans, Clean, Sans-serif; + line-height: 1.6; + -webkit-font-smoothing: antialiased; +} + +code { + font-size: 16px; + font-family: Consolas, "Liberation Mono", Courier, monospace; +} + +:not(a)>code { + color: #6D180B; +} + +:not(pre)>code { + background-color: #F2F2F2; + border: 1px solid #CCCCCC; + border-radius: 4px; + padding: 1px 3px 0; + text-shadow: none; + white-space: nowrap; +} + +body>*:first-child { + margin-top: 0 !important; +} + +div { + margin: 0pt; +} + +hr { + border: 1px solid #CCCCCC; + background: #CCCCCC; +} + +h1,h2,h3,h4,h5,h6 { + color: #000000; + cursor: text; + font-weight: bold; + margin: 30px 0 10px; + padding: 0; +} + +h1,h2,h3 { + margin: 40px 0 10px; +} + +h1 { + margin: 70px 0 30px; + padding-top: 20px; +} + +div.part h1 { + border-top: 1px dotted #CCCCCC; +} + +h1,h1 code { + font-size: 32px; +} + +h2,h2 code { + font-size: 24px; +} + +h3,h3 code { + font-size: 20px; +} + +h4,h1 code,h5,h5 code,h6,h6 code { + font-size: 18px; +} + +div.book,div.chapter,div.appendix,div.part,div.preface { + min-width: 300px; + max-width: 1200px; + margin: 0 auto; +} + +p.releaseinfo { + font-weight: bold; + margin-bottom: 40px; + margin-top: 40px; +} + +div.authorgroup { + line-height: 1; +} + +p.copyright { + line-height: 1; + margin-bottom: -5px; +} + +.legalnotice p { + font-style: italic; + font-size: 14px; + line-height: 1; +} + +div.titlepage+p,div.titlepage+p { + margin-top: 0; +} + +pre { + line-height: 1.0; + color: black; +} + +a { + color: #4183C4; + text-decoration: none; +} + +p { + margin: 15px 0; + text-align: left; +} + +ul,ol { + padding-left: 30px; +} + +li p { + margin: 0; +} + +div.table { + margin: 1em; + padding: 0.5em; + text-align: center; +} + +div.table table,div.informaltable table { + display: table; + width: 100%; +} + +div.table td { + padding-left: 7px; + padding-right: 7px; +} + +.sidebar { + line-height: 1.4; + padding: 0 20px; + background-color: #F8F8F8; + border: 1px solid #CCCCCC; + border-radius: 3px 3px 3px 3px; +} + +.sidebar p.title { + color: #6D180B; +} + +pre.programlisting,pre.screen { + font-size: 15px; + padding: 6px 10px; + background-color: #F8F8F8; + border: 1px solid #CCCCCC; + border-radius: 3px 3px 3px 3px; + clear: both; + overflow: auto; + line-height: 1.4; + font-family: Consolas, "Liberation Mono", Courier, monospace; +} + +table { + border-collapse: collapse; + border-spacing: 0; + border: 1px solid #DDDDDD !important; + border-radius: 4px !important; + border-collapse: separate !important; + line-height: 1.6; +} + +table thead { + background: #F5F5F5; +} + +table tr { + border: none; + border-bottom: none; +} + +table th { + font-weight: bold; +} + +table th,table td { + border: none !important; + padding: 6px 13px; +} + +table tr:nth-child(2n) { + background-color: #F8F8F8; +} + +td p { + margin: 0 0 15px 0; +} + +div.table-contents td p { + margin: 0; +} + +div.important *,div.note *,div.tip *,div.warning *,div.navheader *,div.navfooter *,div.calloutlist * + { + border: none !important; + background: none !important; + margin: 0; +} + +div.important p,div.note p,div.tip p,div.warning p { + color: #6F6F6F; + line-height: 1.6; +} + +div.important code,div.note code,div.tip code,div.warning code { + background-color: #F2F2F2 !important; + border: 1px solid #CCCCCC !important; + border-radius: 4px !important; + padding: 1px 3px 0 !important; + text-shadow: none !important; + white-space: nowrap !important; +} + +.note th,.tip th,.warning th { + display: none; +} + +.note tr:first-child td,.tip tr:first-child td,.warning tr:first-child td + { + border-right: 1px solid #CCCCCC !important; + padding-top: 10px; +} + +div.calloutlist p,div.calloutlist td { + padding: 0; + margin: 0; +} + +div.calloutlist>table>tbody>tr>td:first-child { + padding-left: 10px; + width: 30px !important; +} + +div.important,div.note,div.tip,div.warning { + margin-left: 0px !important; + margin-right: 20px !important; + margin-top: 20px; + margin-bottom: 20px; + padding-top: 10px; + padding-bottom: 10px; +} + +div.toc { + line-height: 1.2; +} + +dl,dt { + margin-top: 1px; + margin-bottom: 0; +} + +div.toc>dl>dt { + font-size: 32px; + font-weight: bold; + margin: 30px 0 10px 0; + display: block; +} + +div.toc>dl>dd>dl>dt { + font-size: 24px; + font-weight: bold; + margin: 20px 0 10px 0; + display: block; +} + +div.toc>dl>dd>dl>dd>dl>dt { + font-weight: bold; + font-size: 20px; + margin: 10px 0 0 0; +} + +tbody.footnotes * { + border: none !important; +} + +div.footnote p { + margin: 0; + line-height: 1; +} + +div.footnote p sup { + margin-right: 6px; + vertical-align: middle; +} + +div.navheader { + border-bottom: 1px solid #CCCCCC; +} + +div.navfooter { + border-top: 1px solid #CCCCCC; +} + +.title { + margin-left: -1em; + padding-left: 1em; +} + +.title>a { + position: absolute; + visibility: hidden; + display: block; + font-size: 0.85em; + margin-top: 0.05em; + margin-left: -1em; + vertical-align: text-top; + color: black; +} + +.title>a:before { + content: "\00A7"; +} + +.title:hover>a,.title>a:hover,.title:hover>a:hover { + visibility: visible; +} + +.title:focus>a,.title>a:focus,.title:focus>a:focus { + outline: 0; +} diff --git a/spring-cloud-aws/1.2.4.RELEASE/single/images/background.png b/spring-cloud-aws/1.2.4.RELEASE/single/images/background.png new file mode 100644 index 0000000000000000000000000000000000000000..15dca6fbe2669fae3609605e49c69cc414f1b6ed GIT binary patch literal 18255 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 EKU&lfD*ylh literal 0 HcmV?d00001 diff --git a/spring-cloud-aws/1.2.4.RELEASE/single/images/callouts/1.png b/spring-cloud-aws/1.2.4.RELEASE/single/images/callouts/1.png new file mode 100644 index 0000000000000000000000000000000000000000..7d473430b7bec514f7de12f5769fe7c5859e8c5d GIT binary patch literal 329 zcmeAS@N?(olHy`uVBq!ia0vp^JRr;gBp8b2n5}^nQC}X^4DKU-G|w_t}fLBA)Suv#nrW z!^h2QnY_`l!BOq-UXEX{m2up>JTQkX)2m zTvF+fTUlI^nXH#utd~++ke^qgmzgTe~DWM4ffP81J literal 0 HcmV?d00001 diff --git a/spring-cloud-aws/1.2.4.RELEASE/single/images/callouts/2.png b/spring-cloud-aws/1.2.4.RELEASE/single/images/callouts/2.png new file mode 100644 index 0000000000000000000000000000000000000000..5d09341b2f6d2ea2d1d5dad5d980f14b4b05dfd2 GIT binary patch literal 353 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 literal 0 HcmV?d00001 diff --git a/spring-cloud-aws/1.2.4.RELEASE/single/images/logo.png b/spring-cloud-aws/1.2.4.RELEASE/single/images/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..ade2ce6ed9d9e9f2f4d9c5729a252ee618a0a5a7 GIT binary patch literal 4387 zcmV+;5!~*HP){P%3MJaDx_;_%u2|NZg!>}aqze!Nxc^y8Ao zaMb9>c)3l4zg^w!(u~7spv{7=)Rn#5sM+hyw%MSF!DHa>*1_JcqtAwz$$7Kao2k-{ z$Ktlp=fbSilJ55Bz}~Eo#%^5i?uh^Z5MW6}K~#90-Cc>2qDT-G%qj|s`%n~65K#I5 zADlwl_5$Q6z@8Veu^l@*Ej;tC%&f&?en^rmW8G4Bfs-$nj#hCGIahUzrMVw+I%xQ$E)R)G83X}t`1ui)Ke0b?i}V~=x;*#OP5^AJ z_OVA5<-$S(*dHs3nS@MY=6>c;q3@Q*^@Wc{Iv$8o7%%=lu>Mmu!n-W>7#}U^c;JPI zcIceuet!P2`VsO2g}6x=;JIIdC*&i)%=!Asvn$`C@XK&1|;bH5D_ z=zH7c!N>)KddJ;g59siDEplU|gd&)!`j@>B<Ren; zZ&4m;WDi^gpt1Gv2zv@ph@g01qCEH@j_rY~NI}KjsHjX%MJEA4+|NkF9jCN)QIRhc zFaLQ2c|!z};lxO_~%A+Qex!?*?#BCYPpKKPI zY^8;41BlDH8Ck6C87V0(Eh9w^6@ery;@8d~7@N5%3D&bI&W)5%c0@q##k7>lV_Tmd zdSptXnJFnrN!I{yxMakbDUX|fdg@WJnp;XPU|!EiuDPM4^)e9poGEjf}cm) zQ6T<|r>a)+C6s`;zm+8Q0)h9IA5I2+zPRKWK##xWH90f{l+8s6PUi_;-+}yxY%qW_ zpq+;jDIBj9-3_RCtVLQ8Qlfc6S#9Zl2_?oe1NdkN)R~2omG>pa#E4!j>XLcm?Homv z)0|1pBko@KhMk9$WCm|6Z@xrINc5&Ax^KW7RoSKZ9md31ze)+imI%u9;l1k3P*$se zQB*}|EF)AlQ+s3l9q}umq*6uHfSQl>hxm| zpk$MFHQ|Ize3VlGK<4Y2*By?DAfD8q1chgsqJWf%4u>l#5$sjHAe?MN@FtB=By8>S z{l+gMS0M8kTOy{7HgpDqa)qoeLq8Iyrv*^7Z*ILgv-I>lSDU1yE;shXv=}u0Bm)79 zpZqyHmaO~`DU)SCU_|?m=93u|FsC%Kn)W)5C8=35QKN++ZrT`%n7|YUMOK|G+@yYz zBsTlUk2m2t-|0W}=uS+>_s~eOomO9eNP&(Tp=ivSZj!ZUx>Nu{loG^10u@~^veRv# zmx6;={>X(lfGBI}VRIH%reoDmG+ED&YsLnu8aM$(K>}kY*{WC@uUGg=h+u|R+ppeQ z8xW0SWbtX~n<7Qc(HS71?mA?&;Jqh|!U`bj9XbqsX$b*$gdCZ6vtd|FipbjbhVnr?e>-4~RyzvF<<-Qs^Xc&1 zMG?)OVl#yvh7FZ<%SeB(RSHMUeR^N=4zyT3l&pu{5o$u;~6g>~~oHNaYV8U>0d+O}rOK%P62>-NULqj@}>^cx{|H`VfP%0dmMM*p1WF zX&7F-oZ#fP%2l0M2J7v2y}j5tt-lDZ!(fW)xl~mt!6pa@qT{k(8D&?Dpg3SeTXh;6 zf~))sUYGV!>A5Fl6kB4L;Y5ruG0!VLN%ntyh9Y>!uB?pF4UL3&H(8sVe5^8A((%`i zD&TE8X^@_Brv#AKv}u7iEW65RY1@Y9KX&$iMCPdhIRDn!vkbDmh(BgVGz>E6X3ukb#p2Dx>^YuoxqN> z&w=TuA#hCAbp}GWYhDjUwWLTfU(G?$^s~;HSU;+R{kpFly^j3+BInx<4KBB1x7JYC zq<$);o)bY?S3fKEx%TA&oqlzKyfMhJHsEOBM5vkH=RD7cW|-B?MI_cw{^7Xc1(m9~ zY|dhW*3%mkt3V{KH|x!_zDoEW{pMW71nBgGRd{1G_98WN0`zS#8>d{w#F$=l%EOAr z%><3QQ|3Oe&L`j+o50)eA0I5EhsJJ-CL4Pp#eODK+j12X5>7tPtJ_F0{3hxA#EBq0 z_hMK!&xF{BCJ#;IRAJKJXvA>xffF#F;@O-dBTNdzspmqpEd}QO8>RCjCxVhZ$Qj=7 zR2}p-3O+iPEC&Ddv3l{56Y;_KSR8ur?jWOew%1`587vFmG)reqt>6);xJOkEPixX_ z{l|b+7-b^&p<-59Q+mbk>LvNW)xz2n&o^6%Q5kc+;MAgscwhSWS<|`zCf*UJUuqoa z<7}JNrV&lKxd)Z!9Qg;2$Q}52x!URT=8B-r)87O|Tk=#LvYxcMhJRYjK97YiKRx*c za9yp+cXdp@JVJ%MGumF%FB?1~_+WQq&dK-ySxOAxpFeD-@#iG-6;v%XIA>!=<*f?Urxr1Pj(NRcREqRRHswF zk;j>n(Teu^{w^dPDOsf5TChaEoY0ZZ0HxLA&?f3eiMsB1rnlg`>2#dD*!qoJFO-O# zDCrWg{cyrF-w{wT!XcoZ6_49SkbCa*A$sQp;){qYC;S(1O3w3cji$AzmFPZyvq-oR zB9zXUx8vCzP2=&Mkk|15Nsl{s2rN>b28Gv_ksGXo2Tx7|t-BV%^X`)si!E0pYw*0d zkugG_qAdWw>pV~oF%cFHS5DfTwX}nDVdUvMW>VPMT=ftWp`2Rh#>gcN;X#OonH{0e zOL_oW%w@gelynN~uV8sJ*A8kU8Ggbe>ACN|&Z+?vZRYo$q3wH25x6ZH0y_Z>zGn@q z+emoZVD*LPpV4o0t@IK&<|`Sd%7^EE+hM!+peeAgujC%P7pzCGt(!;Xv%%^faBH_Ny;(iNv1s|C4 z;d>&5#%14t#C1l6)&Gr!&i#K!Jq$4oFjj-|VjfCJn`i+DF_Z1EJu49V8?S zPwDGv&2QHSrR5O5HXg{G@nB7R5}TH^g2M&sd+LD)RJXytSjbGlvUSlLCDnQI^ADq-=ja;k5rFl-Ml_z)VsGybK8TIasZnEcqLXLuyu~zChc% zL%fec%2=ejbK>iOinblMxi=_y`|4Qa38-k_yc%%b?f12SPL~o`>8RHOeg!~?yA8UI zdPCq>pyRk$361H`|12tC<~>R|`r&Ux7=3_f-}_C1MEoyptpet@ckcq;uZ91Q6(ahB zmSI_8^q;YU1bax!&jo6@9(V!xH$g$gmct4GP2JkGq7VKLLV;pn&(9s!GIhyccg;Y= zB;&be0q?i5@bi3XC zN)ZU(_2cjD^OTzYc6Aza?V^lzbs5IC=Zaqs*DUpq28#7tClK{yXb1Wwu?(E7V(JeM8)nOZvWVMX6F08ci!Lcy`N`3 zRmMkqPWG8hB9T1hF%lKAdbyuT9>n{*eLWY6#T%Du@g&n~JQuNGq$r&!4Flu`Bpp*> zh%RqUHzpvFJTmlZEv{9>@llh3hPZWTc7vHflSqO{yBR^VFdRt3()C6mdFU^lWI(SI zk~M4vs4$DM41J8lf+acP)u|5Q7d9H%x_Cd^XHyaDX=#nXqQj zt>&vFvNyJflaQQ&<7Pgco|~IX%Vp9`mUKGA-Zp( zOJtG50yzv2=0Xrx46(Qj83@V53@*$QjdQ#U%j3e3l*8gOAt(xhqztY^3`s$@h$SN! zBqG*0R&KQ7h!Mrc?dl1;Z?K%-#qz}#48ctnwaJt{-T}%C6K=9*n9P7U2?jzG2&y-_ z1)=T&y^dFcS@bqcC$pFgz^e@N_3!Y2&4rmVrc?^b{#WF$vAX{!YjnaHy1PC8t6j!L zL=U>RZ=0Vuyd59RNX(3d7!LK(`xl6rBPrw5(!bs96XC4+vN`n!pkNhnvKs;x&pmV! z^p5t4F5vmbc<*Tg!?VGlB>@XnzNdTWfhvE25$e1Mo;VNrFPPX7U z(3k?AET0>c;EQjdF;|7qmM;id8Z2DH;$?xdi*jLQS;UTmTiQ;84~KpVQTS}!1G7>???1T1M8Y2Y^v{gyWH4>vrEALt zW@fUDlD9Q{=doHaIiz}LsVtu#Tf|>gNSPn)uUj7xxbS*QsNLaH+;@qq1yM5)eX8Xer{FRzM~ z7xK|ff|w#cs13!6!+4oAeiqo&#|^o&-HT^JJ+1KLT73G&i2y$6Z`@c^KzV`9OsHC8!WcLRbRl_HObYx+233S$HvBP zx5xC8NE3$Tk|?#kKW%jS#1E2l4~Dm9y?iNEMtGE`{31iwDR0{;frQ`P~3kjC$lu_eqZs}wAR(baf^>n-dr`hd)oUmm$gnF zbD^_eYPM#zynGxf-a!tS6u8|n_+WHspz~^faii1kX{e03c}{&}W2fu+^!IEjlU-

MvJZJ$)LTqJA+@mbLxmkyPc#tU=W5xPJ%q2sZXv`v(Ui?>!8Tjh_mSOc$O+ zW<-$ZjJfV@LAsB%Biz5w(;fXV?CW1TB9(ujH2(XqZD*&_2O2L-EZJ~mTUSoq*g)q^ zQ!j3qa>DzQ*dH!xN(0O3n$-7HmkYk_eQXG-gI*K|{dncP!DXswNa?P_Z}nzo#*v#J zQ5S9ROsaZ%ZqC6y?VF!Q1^;o|wu*kH=E=`8B``9)uFtN|s?>Xw*7?*`wfqP}<_A~q zd8VVPq*k-7ZPhbSEogsT%F|x0xuT7xdRv7>Rev?4wv{qrDN}+xS$8V5!!ga&#Y1*BgqL?&c}jPc zG_JlfMSD5I%DQQcHXTbGWQtKpeL6yAB|UI5CQ=~#`}=c}Um;E%R)9u^qI0>&GHQ-g zOm;DCkym+{WF$}@UWrV1mtnTPtu!WtY$r7BOpo|N_#mqWGhK#KR0MD7eW*yPaY&xBTRfcG-E5p&`2dq z875XFdy+3GStd(wD_Mg`dys8Xd_houJju_&*4)mZt2Tk1H)DTRJY^_lf>>*ZU2Th5 zWQ3Ly{;kf91GM2s4Vfv8a-fcsXpb+4t> zmM%11X*>M&PQZNVdARf4d*2x!aq1>jOzQ?>>R)(Ok;sOJ)7jfk$Fdif23? z-}3V78&9qod*O;uGk%fEW^;|k`Lo>bOq2iF72o-IGb2gTw+4B~#iYz(oL}sS7|$R2 zDGfrR{|@~AQJ&v(#4u|ZtJP}t520N48P!$8U;|Vfuq=8>E$w`o2Jf`%eqhqbr%IH1zV?O3uDWqKZId-wMQ*MFefpD5X*w@ zok{kNA?%%$F{M!OUcE^^x{~(wkHK|_*9Yg`KNS88FaVH_sda1Xfs6nE002ovPDHLk FV1jwin)(0$ literal 0 HcmV?d00001 diff --git a/spring-cloud-aws/1.2.4.RELEASE/single/images/warning.png b/spring-cloud-aws/1.2.4.RELEASE/single/images/warning.png new file mode 100644 index 0000000000000000000000000000000000000000..0d5b5244605adbb7ab05a1549746a9c35490f95b GIT binary patch literal 2130 zcmbVNYg7|w8V(4q($)50y>JmGlLW#g$xLn}Vd2Si)}#|ptPAQp3Bp-3!-lL0;i^LY?;i#f0m5s49g z3h?3rDQg~EDPlm?FKkgKIcWEK-3X6YU0uzs7H|nq84s39r2!5;pF?SI$QqXy^Ko1x zV~zpENvp@<_Bsd`5MabC#3rvCq&$5dg43yGR zAdy0-rWjC#a1N_+kzUMY#pmogD7!DP(9dEKr3c5ngvUq_6>}Y+w-a81v=eSXnIi_+ zI?U>D1q2C!0zHox#XXKH+@|&rPT*OF5yvY$5J|)WwLqnU)c-5;=UChSlQkaY3@^|g z|J5#YBB}=i+n3Ex9bS$P?xJSKLk)-HHII@;3qG#TG^!+aj>0QkO~7kB0+|yM;YrGB zF>Ge@isQ#73%Tp#k_(tInh3U$uJWY-+DND*o}L-CB5g@#9YWWw~pxZ!Obm>yN#ZHFvL0zA3vNCTJ=t?)~`2O1M{L6un=ml<2x zQEYfifmA?Pz0tqRs^2Utt1pU0BQB1eIY0U_I}c1Y#PP7Ci5s7#IJn}xK{G+{_v^Z+1V#$Erodv>d}ew>RP0wzw+GWkGCBlS1Oj5Z!5NK zUuSR6>pa}RSEZ;qE_w1l#`hQX4E67U6NeP zHZ`T&wj0_H)t|Y1thUqnhub?%e)Y07;a^Tq%FO&iQkR&`qG!dh*2WfW(HuRQj*_DI zeCD1bUA|tMwjOb8E|FRIn$pzEU!2j_N}1Z2ig)vbr5xA0rjC70cmI6*%Uf->hWzaZ z{33HABO5q)vRhzDly2l691@+q3O{}NbSzx+I*k@|L4&3leK#$>u+T#TvTELfKb|IH zc23atf3vmfCa0&TWY@iuoA_Pm<0~ttEC*ut`isb^jXS>X^Sp=l?RXN_OJ*&usGXg$ zTlTv;Ch^vhLDf&+62jl64*&D+=+`sN_dap_1W%p|KQVYIdgPL5uRE9(c4On)DXndL zLNq?%!-u*zmMxyYc4m4Nr>>=A=s}PkJkqr&E^b9>5g+}c1%X}3|WKcg&spcJQ)05zI<<5LTBhNKRg$XRTi2{j)yl_ zj4~kKOvr+m(;vw~9zVh(zC-y9jqQnguz5r7FRq^MyKuXAENp(TAzUVtg&Ts+B_s7) zGn+fN0sG>9GjsPLKTRrvCd`71IZulJ1_1jO9KWbD&_@2UC+LTNpxxrdz#E|j|2nA9 zzB!UTyfAEJ&#%$pQ>QX#8vk@_a5iqukMF;8`wRKe{BI}5$H%OROs4J1#j)|?p|YSh z_SpR^e`VE#F52;WL{!+L(yZLRh40*KS;@box;9(-tE)`mcVp27O*>Z{_Lb*5T3cJA yr~0nPHtg2+UHi&&$8ha;`+hiaUmw&!n@8(?5PqF(KE5>Ym)EG)p&uyBP5%a8^# + + Spring Cloud AWS

Spring Cloud AWS

Authors

Agim Emruli, Alain Sahli

Table of Contents

1. Using Amazon Web Services
2. Basic setup
2.1. Spring Cloud AWS maven dependency management
2.2. Amazon SDK configuration
2.2.1. SDK credentials configuration
Simple credentials configuration
Instance profile configuration
Mixing both security configurations
2.2.2. Region configuration
Explicit region configuration
Automatic region configuration
Service specific region configuration
2.2.3. Spring Boot auto-configuration
Maven dependencies
Configuring credentials
Configuring region
3. Cloud environment
3.1. Retrieving instance metadata
3.1.1. Enabling instance metadata support with XML
3.1.2. Enabling instance metadata support with Java
3.1.3. Enabling instance metadata support in Spring Boot
3.1.4. Using instance metadata
3.1.5. Using instance user data
3.1.6. Using instance tags
3.1.7. Configuring custom EC2 client
3.1.8. Injecting the default EC2 client
4. Managing cloud environments
4.1. Automatic CloudFormation configuration
4.2. Manual CloudFormation configuration
4.3. CloudFormation configuration with Java config classes
4.4. CloudFormation configuration in Spring Boot
4.5. Manual name resolution
4.6. Stack Tags
4.7. Using custom CloudFormation client
5. Messaging
5.1. Configuring messaging
5.1.1. Maven dependency configuration
5.2. SQS support
5.2.1. Sending a message
Using message converters
5.2.2. Receiving a message
5.2.3. Annotation-driven listener endpoints
Message reply
5.2.4. The SimpleMessageListenerContainerFactory
5.2.5. Consuming AWS Event messages with Amazon SQS
5.3. SNS support
5.3.1. Sending a message
5.3.2. Annotation-driven HTTP notification endpoint
5.4. Using CloudFormation
6. Caching
6.1. Configuring dependencies for Redis caches
6.2. Configuring caching with XML
6.2.1. Mixing caches
6.2.2. Defining expiration
6.3. Configuring caching using Java configuration
6.3.1. Configuring expiry time for caches
6.4. Configuring caching in Spring Boot
6.5. Using caching
6.6. Memcached client implementation
6.7. Using CloudFormation
7. Data Access with JDBC
7.1. Configuring data source
7.1.1. Maven dependency configuration
7.1.2. Basic data source configuration
7.1.3. Data source pool configuration
7.2. Configuring data source with Java config
7.2.1. Java based data source pool configuration
7.3. Configuring data source in Spring Boot
7.4. Read-replica configuration
7.5. Failover support
7.6. CloudFormation support
7.7. Database tags
8. Sending mails
8.1. Configuring the mail sender
8.2. Sending simple mails
8.3. Sending attachments
8.4. Configuring regions
8.5. Authenticating e-mails
9. Resource handling
9.1. Configuring the resource loader
9.2. Downloading files
9.3. Uploading files
9.3.1. Uploading multi-part files
9.3.2. Uploading with the TransferManager
9.4. Searching resources
9.5. Using CloudFormation

Spring Cloud for Amazon Web Services, 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.

[Note]Note

Spring Cloud is released under the non-restrictive Apache 2.0 license. If you would like to contribute to this section of the documentation or if you find an error, please find the source code and issue trackers in the project at github.

1. Using Amazon Web Services

Amazon provides a Java SDK to issue requests for the all services provided by the +Amazon Web Service platform. Using the SDK, application developers still have to integrate the +SDK into their application with a considerable amount of infrastructure related code. Spring Cloud AWS provides application +developers already integrated Spring-based modules to consume services and avoid infrastructure related code as much as possible. +The Spring Cloud AWS module provides a module set so that application developers can arrange the dependencies based on +their needs for the particular services. The graphic below provides a general overview of all Spring Cloud AWS modules along +with the service support for the respective Spring Cloud AWS services.

Overview
  • Spring Cloud AWS Core is the core module of Spring Cloud AWS providing basic services for security and configuration +setup. Developers will not use this module directly but rather through other modules. The core module provides support for +cloud based environment configurations providing direct access to the instance based EC2 +metadata and the overall application stack specific CloudFormation metadata.
  • Spring Cloud AWS Context delivers access to the Simple Storage Service via the Spring +resource loader abstraction. Moreover developers can send e-mails using the Simple E-Mail Service +and the Spring mail abstraction. Further the developers can introduce declarative caching using the Spring caching support +and the ElastiCache caching service.
  • Spring Cloud AWS JDBC provides automatic datasource lookup and configuration for the Relational Database Service +which can be used with JDBC or any other support data access technology by Spring.
  • Spring Cloud AWS Messaging enables developers to receive and send messages with the Simple Queueing Service for +point-to-point communication. Publish-subscribe messaging is supported with the integration of the Simple Notification Service.

2. Basic setup

Before using the Spring Cloud AWS module developers have to pick the dependencies and configure the Spring Cloud AWS module. +The next chapters describe the dependency management and also the basic configuration for the Spring AWS Cloud project.

2.1 Spring Cloud AWS maven dependency management

Spring Cloud AWS module dependencies can be used directly in Maven with a direct configuration +of the particular module. The Spring Cloud AWS module includes all transitive dependencies for the Spring modules and +also the Amazon SDK that are needed to operate the modules. The general dependency configuration will look like this:

<dependencies>
+  <dependency>
+    <groupId>org.springframework.cloud</groupId>
+    <artifactId>spring-cloud-aws-context</artifactId>
+    <version>{spring-cloud-version}</version>
+  </dependency>
+</dependencies>

Different modules can be included by replacing the module name with the respective one (e.g. spring-cloud-aws-messaging +instead of spring-cloud-aws-context)

The example above works with the Maven Central repository. To use the Spring Maven repository (e.g. for milestones or +developer snapshots), you need to specify the repository location in your Maven configuration. For full releases:

<repositories>
+    <repository>
+        <id>io.spring.repo.maven.release</id>
+        <url>https://repo.spring.io/release/</url>
+        <snapshots><enabled>false</enabled></snapshots>
+    </repository>
+</repositories>

For milestones:

<repositories>
+    <repository>
+        <id>io.spring.repo.maven.milestone</id>
+        <url>https://repo.spring.io/milestone/</url>
+        <snapshots><enabled>false</enabled></snapshots>
+    </repository>
+</repositories>

2.2 Amazon SDK configuration

The Spring Cloud AWS configuration is currently done using custom elements provided by Spring Cloud AWS namespaces. +JavaConfig will be supported soon. The configuration setup is done directly in Spring XML configuration files +so that the elements can be directly used. Each module of Spring Cloud AWS provides custom namespaces to allow the modular +use of the modules. A typical XML configuration to use Spring Cloud AWS is outlined below:

<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xmlns:aws-context="http://www.springframework.org/schema/cloud/aws/context"
+       xsi:schemaLocation="http://www.springframework.org/schema/beans
+        https://www.springframework.org/schema/beans/spring-beans.xsd
+        http://www.springframework.org/schema/cloud/aws/context
+        http://www.springframework.org/schema/cloud/aws/context/spring-cloud-aws-context.xsd">
+
+           <aws-context:context-region region="..."/>
+</beans>

2.2.1 SDK credentials configuration

In order to make calls to the Amazon Web Service the credentials must be configured for the the Amazon SDK. Spring Cloud AWS +provides support to configure an application context specific credentials that are used for each service call for requests done +by Spring Cloud AWS components. Therefore there must be exactly one configuration of the credentials for an entire application +context.

[Tip]Tip

The com.amazonaws.auth.DefaultAWSCredentialsProviderChain is used by all the clients if there is no dedicated credentials + provider defined. This will essentially use the following authentication information

  • use the environment variables AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY
  • use the system properties aws.accessKeyId and aws.secretKey
  • use the user specific profile credentials file
  • use the instance profile credentials (see below)

Based on the overall credentials policy there are different options to configure the credentials. The possible ones are described in +the following sub-chapters.

Simple credentials configuration

Credentials for the Amazon SDK consist of an access key (which might be shared) and a secret key (which must not be shared). Both +security attributes can be configured using the XML namespaces for each Amazon SDK service created by the Spring Cloud AWS +module. The overall configuration looks like this

<beans ...>
+  <aws-context:context-credentials>
+   <aws-context:simple-credentials access-key="AKIAIO" secret-key="wJalrXUtnFEMI/K7M" />
+  </aws-context:context-credentials>
+</beans>
[Caution]Caution

The access-key and secret-key should be externalized into property files (e.g. Spring Boot application configuration) +and not be checked in into the source management system.

Instance profile configuration

An instance profile configuration allows to assign +a profile that is authorized by a role while starting an EC2 instance. All calls made from the EC2 instance are then authenticated +with the instance profile specific user role. Therefore there is no dedicated access-key and secret-key needed in the configuration. +The configuration for the instance profile in Spring Cloud AWS looks like this:

<beans ...>
+	<aws-context:context-credentials>
+ 		<aws-context:instance-profile-credentials/>
+ 	</aws-context:context-credentials>
+</beans>

Mixing both security configurations

In some cases it is useful to combine both authentication strategies to allow the application to use the instance profile +with a fallback for an explicit access-key and secret-key configuration. This is useful if the application is tested inside +EC2 (e.g. on a test server) and locally for testing. The next snippet shows a combination of both security configurations.

<beans ...>
+   <aws-context:context-credentials>
+       <aws-context:instance-profile-credentials/>
+       <aws-context:simple-credentials access-key="${accessKey:}" secret-key="${secretKey:}"/>
+   </aws-context:context-credentials>
+</beans>
[Tip]Tip

The access-key and secret-key are defined using a placeholder expressions along with a default value to avoid bootstrap +errors if the properties are not configured at all.

2.2.2 Region configuration

Amazon Web services are available in different regions. Based +on the custom requirements, the user can host the application on different Amazon regions. The spring-cloud-aws-context +module provides a way to define the region for the entire application context.

Explicit region configuration

The region can be explicitly configured using an XML element. This is particularly useful if the region can not be automatically +derived because the application is not hosted on a EC2 instance (e.g. local testing) or the region must be manually overridden.

<beans ...>
+  	<aws-context:context-region region="eu-west-1"/>
+</beans>
[Tip]Tip

It is also allowed to use expressions or placeholders to externalize the configuration and ensure that the region can +be reconfigured with property files or system properties.

Automatic region configuration

If the application context is started inside an EC2 instance, then the region can automatically be fetched from the +instance metadata and therefore must +not be configured statically. The configuration will look like this:

<beans ...>
+  <aws-context:context-region auto-detect="true" />
+</beans>

Service specific region configuration

A region can also be overridden for particular services if one application context consumes services from different regions. +The configuration can be done globally like described above and configured for each service with a region attribute. +The configuration might look like this for a database service (described later)

<beans ...>
+ <aws-context:context-region region="eu-central-1" />
+ <jdbc:data-source ... region="eu-west-1" />
+</beans>
[Note]Note

While it is theoretically possible to use multiple regions per application, we strongly recommend to write applications that +are hosted only inside one region and split the application if it is hosted in different regions at the same time.

2.2.3 Spring Boot auto-configuration

Following the Spring Cloud umbrella project, Spring Cloud AWS also provides dedicated Spring Boot support. Spring Cloud +AWS can be configured using Spring Boot properties and will also automatically guess any sensible configuration based on +the general setup.

Maven dependencies

Spring Cloud AWS provides a dedicated module to enable the Spring Boot support. That module must be added to the general +maven dependency inside the application. The typical configuration will look like this

<dependencies>
+  <dependency>
+    <groupId>org.springframework.cloud</groupId>
+    <artifactId>spring-cloud-aws-autoconfigure</artifactId>
+    <version>{spring-cloud-version}</version>
+  </dependency>
+</dependencies>

Additional dependencies to enable particular features like messaging and JDBC have to be added. Spring Cloud AWS will +only configure classes that are available in the Spring Boot application’s classpath.

Configuring credentials

Spring Boot provides a standard way to define properties with property file or YAML configuration files. Spring Cloud +AWS provides support to configure the credential information with the Spring Boot application configuration files. +Spring Cloud AWS provides the following properties to configure the credentials setup for the whole application.

propertyexampledescription

cloud.aws.credentials.accessKey

AKIAIOSFODNN7EXAMPLE

The access key to be used with a static provider

cloud.aws.credentials.secretKey

wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

The secret key to be used with a static provider

cloud.aws.credentials.instanceProfile

true

Configures an instance profile credentials provider with no further configuration

Configuring region

Like for the credentials, the Spring Cloud AWS module also supports the configuration of the region inside the Spring +Boot configuration files. The region can be automatically detected or explicitly configured (e.g. in case of local tests +against the AWS cloud).

The properties to configure the region are shown below

propertyexampledescription

cloud.aws.region.auto

true

Enables automatic region detection based on the EC2 meta data service

cloud.aws.region.static

eu-west-1

Configures a static region for the application. Possible regions are (currently) us-east-1, us-west-1, us-west-2, +eu-west-1, eu-central-1, ap-southeast-1, ap-southeast-1, ap-northeast-1, sa-east-1, cn-north-1 and any custom region +configured with own region meta data

3. Cloud environment

Applications often need environment specific configuration information, especially in changing environments like in the +Amazon cloud environment. Spring Cloud AWS provides a support to retrieve and use environment specific data inside the +application context using common Spring mechanisms like property placeholder or the Spring expression language.

3.1 Retrieving instance metadata

Instance metadata are available inside an +EC2 environment. The metadata can be queried using a special HTTP address that provides the instance metadata. Spring Cloud +AWS enables application to access this metadata directly in expression or property placeholder without the need to call +an external HTTP service.

3.1.1 Enabling instance metadata support with XML

The instance metadata retrieval support is enabled through an XML element like the standard property placeholder in Spring. +The following code sample demonstrates the activation of the instance metadata support inside an application context.

<beans ...>
+  	<aws-context:context-instance-data />
+</beans>
[Tip]Tip

Instance metadata can be retrieved without an authorized service call, therefore the configuration above does not require +any region or security specific configuration.

3.1.2 Enabling instance metadata support with Java

The instance metadata can also be configured within a Java configuration class without the need for an XML configuration. +The next example shows a typical Spring @Configuration class that enables the instance metadata with the +org.springframework.cloud.aws.context.config.annotation.EnableInstanceData

@Configuration
+@EnableContextInstanceData
+public static class ApplicationConfiguration {
+}

3.1.3 Enabling instance metadata support in Spring Boot

The instance metadata is automatically available in a Spring Boot application as a property source if the application +is running on an EC2 instance.

3.1.4 Using instance metadata

Instance metadata can be used in XML, Java placeholders and expressions. The example below demonstrates the usage of +instance metadata inside an XML file using placeholders and also the expression referring to the special variable environment

<beans ...>
+ <bean class="org.springframework.cloud.aws....SimpleConfigurationBean">
+	<property name="value1" value="#{environment.ami-id}" />
+	<property name="value2" value="#{environment.hostname}" />
+	<property name="value3" value="${instance-type}" />
+	<property name="value4" value="${instance-id}" />
+ </bean>
+</beans>

Instance metadata can also be injected with the Spring org.springframework.beans.factory.annotation.Value annotation +directly into Java fields. The next example demonstrates the use of instance metadata inside a Spring bean.

@Component
+public class ApplicationInfoBean {
+
+    @Value("${ami-id:N/A}")
+    private String amiId;
+
+    @Value("${hostname:N/A}")
+    private String hostname;
+
+    @Value("${instance-type:N/A}")
+    private String instanceType;
+
+    @Value("${services/domain:N/A}")
+    private String serviceDomain;
+}
[Note]Note

Every instance metadata can be accessed by the key available in the instance metadata service +Nested properties can be accessed by separating the properties with a slash ('/').

3.1.5 Using instance user data

Besides the default instance metadata it is also possible to configure user data on each instance. This user data is retrieved and +parsed by Spring Cloud AWS. The user data can be defined while starting an EC2 instance with the application. Spring Cloud AWS +expects the format <key>:<value>;<key>:<value> inside the user data so that it can parse the string and extract the key value pairs.

The user data can be configured using either the management console shown below or a CloudFormation template.

User data in the management console

A CloudFormation template snippet for the configuration of the user data is outlined below:

...
+"Resources": {
+ "ApplicationServerInstance": {
+	 "Type": "AWS::EC2::Instance",
+	 "Properties": {
+	  "ImageId": "ami-6a56b81d",
+	  "UserData": {
+	     "Fn::Base64": "data1:value1;data2:value2"
+	   },
+	  "InstanceType": "t1.micro",
+	 }
+}
+...

The user data can be accessed directly in the application context like the instance metadata through placeholders +or expressions.

@Component
+public class SecondConfigurationBean {
+
+	@Value("${data1}")
+	private String firstDataOption;
+
+	@Value("${data2}")
+	private String secondDataOption;
+}

3.1.6 Using instance tags

User configured properties can also be configured with tags instead of user data. Tags are a global concept in the context +of Amazon Web services and used in different services. Spring Cloud AWS supports instance tags also across different +services. Compared to user data, user tags can be updated during runtime, there is no need to stop and restart +the instance.

[Tip]Tip

User data can also be used to execute scripts +on instance startup. Therefore it is useful to leverage instance tags for user configuration and user data to execute scripts +on instance startup.

Instance specific tags can be configured on the instance level through the management console outlined below and +like user data also with a CloudFormation template shown afterwards.

Instance data in the management console

A CloudFormation template snippet for the configuration of the instance tags is outlined below:

...
+"Resources": {
+	"UserTagAndUserDataInstance": {
+		"Type": "AWS::EC2::Instance",
+		"Properties": {
+			"ImageId": "ami-6a56b81d",
+		  	"InstanceType": "t1.micro",
+		  	"Tags": [
+			{
+				"Key": "tag1",
+			  	"Value": "tagv1"
+			},
+			{
+				"Key": "tag3",
+			  	"Value": "tagv3"
+			},
+			{
+				"Key": "tag2",
+			  	"Value": "tagv2"
+			},
+			{
+				"Key": "tag4",
+				"Value": "tagv4"
+			}
+			]
+		}
+	}
+}
+...

To retrieve the instance tags, Spring Cloud AWS has to make authenticated requests and therefore it will need the region +and security configuration before actually resolving the placeholders. Also because the instance tags are not available while starting +the application context, they can only be referenced as expressions and not with placeholders. The context-instance-data +element defines an attribute user-tags-map that will create a map in the application context for the name. This map +can then be queried using expression for other bean definitions.

<beans ...>
+ <aws-context:context-instance-data user-tags-map="instanceData" />
+</beans>

A java bean might resolve expressions with the @Value annotation.

public class SimpleConfigurationBean {
+
+	@Value("#{instanceData.tag1}")
+	private String value1;
+
+	@Value("#{instanceData.tag2}")
+	private String value2;
+
+	@Value("#{instanceData.tag3}")
+	private String value3;
+
+	@Value("#{instanceData.tag4}")
+	private String value4;
+}

3.1.7 Configuring custom EC2 client

In some circumstances it is necessary to have a custom EC2 client to retrieve the instance information. The +context-instance-data element supports a custom EC2 client with the amazon-ec2 attribute. The next +example shows the use of a custom EC2 client that might have a special configuration in place.

<beans ...>
+
+  <aws-context:context-credentials>....</aws-context:context-credentials>
+  <aws-context:context-region ... />
+  <aws-context:context-instance-data  amazon-ec2="myCustomClient"/>
+
+  <bean id="myCustomClient" class="com.amazonaws.services.ec2.AmazonEC2Client">
+	...
+  </bean>
+</beans>

3.1.8 Injecting the default EC2 client

If there are user tags configured for the instance data (see above) Spring Cloud AWS configures an EC2 client with +the specified region and security credentials. Application developers can inject the EC2 client directly into their code using the @Autowired annotation.

public class ApplicationService {
+
+	private final AmazonEC2 amazonEc2;
+
+	@Autowired
+	public ApplicationService(AmazonEC2 amazonEc2) {
+		this.amazonEc2 = amazonEc2;
+	}
+}

4. Managing cloud environments

Managing environments manually with the management console does not scale and can become error-prone with the increasing +complexity of the infrastructure. Amazon Web services offers a CloudFormation +service that allows to define stack configuration templates and bootstrap the whole infrastructure with the services. +In order to allow multiple stacks in parallel, each resource in the stack receives a unique physical name that contains +some arbitrary generated name. In order to interact with the stack resources in a unified way Spring Cloud AWS allows +developers to work with logical names instead of the random physical ones.

The next graphics shows a typical stack configuration.

CloudFormation overview

The Template File describes all stack resources with their logical name. The CloudFormation service parses the stack +template file and creates all resources with their physical name. The application can use all the stack configured resources +with the logical name defined in the template. Spring Cloud AWS resolves all logical names into the respective +physical name for the application developer.

4.1 Automatic CloudFormation configuration

If the application runs inside a stack (because the underlying EC2 instance has been bootstrapped within the stack), then +Spring Cloud AWS will automatically detect the stack and resolve all resources from the stack. Application developers +can use all the logical names from the stack template to interact with the services. In the example below, the database +resource is configured using a CloudFormation template, defining a logical name for the database instance.

"applicationDatabase": {
+  "Type": "AWS::RDS::DBInstance",
+  "Properties": {
+  	"AllocatedStorage": "5",
+  	"DBInstanceClass": "db.t1.micro",
+  	"DBName": "test"
+  	...
+  ]
+ }
+}

The datasource is then created and will receive a physical name (e.g. ir142c39k6o5irj) as the database service name. Application +developers can still use the logical name (in this case applicationDatabase) to interact with the database. The example +below shows the stack configuration which is defined by the element aws-context:stack-configuration and resolves automatically +the particular stack. The data-source element uses the logical name for the db-instance-identifier attribute to work with +the database.

<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	   xmlns:aws-context="http://www.springframework.org/schema/cloud/aws/context"
+	   xmlns="http://www.springframework.org/schema/beans"
+	   xsi:schemaLocation="http://www.springframework.org/schema/cloud/aws/context
+	   http://www.springframework.org/schema/cloud/aws/context/spring-cloud-aws-context.xsd">
+
+  <aws-context:context-credentials>
+  	...
+  </aws-context:context-credentials>
+
+  <aws-context:context-region .. />
+
+  <aws-context:stack-configuration/>
+
+  <jdbc:data-source db-instance-identifier="applicationDatabase" ... />
+</beans>
[Tip]Tip

Further detailed information on the Amazon RDS configuration and setup can be found in the respective chapter in this +documentation.

4.2 Manual CloudFormation configuration

If the application is not running inside a stack configured EC2 instance, then the stack configuration must be configured +manually. The configuration consists of an additional element attribute stack-name that will be used to resolve all the +respective stack configuration information at runtime.

<beans ....>
+	...
+  <aws-context:stack-configuration stack-name="myStackName" />
+    ...
+</beans>

4.3 CloudFormation configuration with Java config classes

Spring Cloud AWS also supports the configuration of the CloudFormation support within Java classes avoiding the use of + XML inside the application configuration. Spring Cloud AWS provides the annotation + og.springframework.cloud.aws.context.config.annotation.EnableStackConfiguration that allows the automatic and manual + stack configuration. The next example shows a configuration class that configures the CloudFormation support with an + explicit stack name (here manualStackName).

@Configuration
+@EnableStackConfiguration(stackName = "manualStackName")
+class ApplicationConfiguration {
+}
[Tip]Tip

Do not define the stackName attribute if an automatic stack name should be enabled.

4.4 CloudFormation configuration in Spring Boot

Spring Cloud AWS also supports the configuration of the CloudFormation support within the Spring Boot configuration. The +manual and automatic stack configuration can be defined with properties that are described in the table below.

propertyexampledescription

cloud.aws.stack.name

myStackName

The name of the manually configured stack name that will be used to retrieve the resources.

cloud.aws.stack.auto

true

Enables the automatic stack name detection for the application.

4.5 Manual name resolution

Spring Cloud AWS uses the CloudFormation stack to resolve all resources internally using the logical names. In some circumstances +it might be needed to resolve the physical name inside the application code. Spring Cloud AWS provides a pre-configured +service to resolve the physical stack name based on the logical name. The sample shows a manual stack resource resolution.

@Service
+public class ApplicationService {
+
+ private final ResourceIdResolver resourceIdResolver;
+
+ @Autowired
+ public ApplicationService(ResourceIdResolver resourceIdResolver) {
+ 	this.resourceIdResolver = resourceIdResolver;
+ }
+
+ public void handleApplicationLogic() {
+ 	String physicalBucketName =
+ 		this.resourceIdResolver.resolveToPhysicalResourceId("someLogicalName");
+ }
+}

4.6 Stack Tags

Like for the Amazon EC2 instances, CloudFormation also provides stack specific tags that can be used to +configure stack specific configuration information and receive them inside the application. This can for example be a +stage specific configuration property (like DEV, INT, PRD).

<beans ....>
+	...
+	<aws-context:stack-configuration user-tags-map="stackTags"/>
+	...
+</beans>

The application can then access the stack tags with an expression like #{stackTags.key1}.

4.7 Using custom CloudFormation client

Like for the EC2 configuration setup, the aws-context:stack-configuration element supports a custom CloudFormation client +with a special setup. The client itself can be configured using the amazon-cloud-formation attribute as shown in the example:

<beans>
+	<aws-context:stack-configuration amazon-cloud-formation=""/>
+
+	<bean class="com.amazonaws.services.cloudformation.AmazonCloudFormationClient">
+	</bean>
+</beans>

5. Messaging

Spring Cloud AWS provides Amazon SQS and Amazon SNS integration +that simplifies the publication and consumption of messages over SQS or SNS. While SQS fully relies on the messaging API +introduced with Spring 4.0, SNS only partially implements it as the receiving part must be handled differently for +push notifications.

5.1 Configuring messaging

Before using and configuring the messaging support, the application has to include the respective module dependency +into the Maven configuration. Spring Cloud AWS Messaging support comes as a separate module to allow the modularized use +of the modules.

5.1.1 Maven dependency configuration

The Spring Cloud AWS messaging module comes as a standalone module and can be imported with the following dependency declaration:

<dependency>
+	<groupId>org.springframework.cloud</groupId>
+	<artifactId>spring-cloud-aws-messaging</artifactId>
+	<version>{spring-cloud-version}</version>
+</dependency>

5.2 SQS support

Amazon SQS is a hosted messaging service on the Amazon Web Service platform that provides point-to-point communication +with queues. Compared to JMS or other message services Amazon SQS has several features and limitations that should be +taken into consideration.

  • Amazon SQS allows only String payloads, so any Object must be transformed into a String representation. +Spring Cloud AWS has dedicated support to transfer Java objects with Amazon SQS messages by converting them to JSON.
  • Amazon SQS has no transaction support, so messages might therefore be retrieved twice. Application have to be written in +an idempotent way so that they can receive a message twice.
  • Amazon SQS has a maximum message size of 256kb per message, so bigger messages will fail to be sent.

5.2.1 Sending a message

The QueueMessagingTemplate contains many convenience methods to send a message. There are send methods that specify the +destination using a QueueMessageChannel object and those that specify the destination using a string which is going to +be resolved against the SQS API. The send method that takes no destination argument uses the default destination.

import com.amazonaws.services.sqs.AmazonSQS;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.cloud.aws.messaging.core.QueueMessagingTemplate;
+import org.springframework.messaging.support.MessageBuilder;
+
+public class SqsQueueSender {
+
+	private final QueueMessagingTemplate queueMessagingTemplate;
+
+	@Autowired
+	public SqsQueueSender(AmazonSQS amazonSqs) {
+		this.queueMessagingTemplate = new QueueMessagingTemplate(amazonSqs);
+	}
+
+	public void send(String message) {
+		this.queueMessagingTemplate.send("physicalQueueName", MessageBuilder.withPayload(message).build());
+	}
+}

This example uses the MessageBuilder class to create a message with a string payload. The QueueMessagingTemplate is +constructed by passing a reference to the AmazonSQS client. The destination in the send method is a string value that +must match the queue name defined on AWS. This value will be resolved at runtime by the Amazon SQS client. Optionally +a ResourceIdResolver implementation can be passed to the QueueMessagingTemplate constructor to resolve resources by +logical name when running inside a CloudFormation stack (see Chapter 4, Managing cloud environments for more information about +resource name resolution).

With the messaging namespace a QueueMessagingTemplate can be defined in an XML configuration file.

<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xmlns:aws-context="http://www.springframework.org/schema/cloud/aws/context"
+	xmlns:aws-messaging="http://www.springframework.org/schema/cloud/aws/messaging"
+	xmlns="http://www.springframework.org/schema/beans"
+	xsi:schemaLocation="http://www.springframework.org/schema/beans
+		https://www.springframework.org/schema/beans/spring-beans.xsd
+		http://www.springframework.org/schema/cloud/aws/context
+		http://www.springframework.org/schema/cloud/aws/context/spring-cloud-aws-context.xsd
+		http://www.springframework.org/schema/cloud/aws/messaging
+	   	http://www.springframework.org/schema/cloud/aws/messaging/spring-cloud-aws-messaging">
+
+	<aws-context:context-credentials>
+		<aws-context:instance-profile-credentials />
+	</aws-context:context-credentials>
+
+	<aws-messaging:queue-messaging-template id="queueMessagingTemplate" />
+
+</beans>

In this example the messaging namespace handler constructs a new QueueMessagingTemplate. The AmazonSQS client +is automatically created and passed to the template’s constructor based on the provided credentials. If the +application runs inside a configured CloudFormation stack a ResourceIdResolver is passed to the constructor (see +Chapter 4, Managing cloud environments for more information about resource name resolution).

Using message converters

In order to facilitate the sending of domain model objects, the QueueMessagingTemplate has various send methods that +take a Java object as an argument for a message’s data content. The overloaded methods convertAndSend() and +receiveAndConvert() in QueueMessagingTemplate delegate the conversion process to an instance of the MessageConverter +interface. This interface defines a simple contract to convert between Java objects and SQS messages. The default +implementation SimpleMessageConverter simply unwraps the message payload as long as it matches the target type. By +using the converter, you and your application code can focus on the business object that is being sent or received via +SQS and not be concerned with the details of how it is represented as an SQS message.

[Note]Note

As SQS is only able to send String payloads the default converter SimpleMessageConverter should only be used +to send String payloads. For more complex objects a custom converter should be used like the one created by the +messaging namespace handler.

It is recommended to use the XML messaging namespace to create QueueMessagingTemplate as it will set a more +sophisticated MessageConverter that converts objects into JSON when Jackson is on the classpath.

<aws-messaging:queue-messaging-template id="queueMessagingTemplate" />
this.queueMessagingTemplate.convertAndSend("queueName", new Person("John, "Doe"));

In this example a QueueMessagingTemplate is created using the messaging namespace. The convertAndSend method +converts the payload Person using the configured MessageConverter and sends the message.

5.2.2 Receiving a message

There are two ways for receiving SQS messages, either use the receive methods of the QueueMessagingTemplate or with +annotation-driven listener endpoints. The latter is by far the more convenient way to receive messages.

Person person = this.queueMessagingTemplate.receiveAndConvert("queueName", Person.class);

In this example the QueueMessagingTemplate will get one message from the SQS queue and convert it to the target class +passed as argument.

5.2.3 Annotation-driven listener endpoints

Annotation-driven listener endpoints are the easiest way for listening on SQS messages. Simply annotate methods with +MessageMapping and the QueueMessageHandler will route the messages to the annotated methods.

<aws-messaging:annotation-driven-queue-listener />
@SqsListener("queueName")
+public void queueListener(Person person) {
+	// ...
+}

In this example a queue listener container is started that polls the SQS queueName passed to the MessageMapping +annotation. The incoming messages are converted to the target type and then the annotated method queueListener is invoked.

In addition to the payload, headers can be injected in the listener methods with the @Header or @Headers +annotations. @Header is used to inject a specific header value while @Headers injects a Map<String, String> +containing all headers.

[Note]Note

It is recommended to use the XML messaging namespace to create QueueMessagingTemplate as it will set a more +sophisticated MessageConverter that converts objects into JSON when Jackson is on the classpath.

<aws-messaging:queue-messaging-template id="queueMessagingTemplate" />
this.queueMessagingTemplate.convertAndSend("queueName", new Person("John, "Doe"));

In this example a QueueMessagingTemplate is created using the messaging namespace. The convertAndSend method +converts the payload Person using the configured MessageConverter and sends the message. +Only the standard +message attributes sent with an SQS message are supported. Custom attributes are currently not supported.

In addition to the provided argument resolvers, custom ones can be registered on the +aws-messaging:annotation-driven-queue-listener element using the aws-messaging:argument-resolvers attribute (see example below).

<aws-messaging:annotation-driven-queue-listener>
+	<aws-messaging:argument-resolvers>
+		<bean class="org.custom.CustomArgumentResolver" />
+	</aws-messaging:argument-resolvers>
+</aws-messaging:annotation-driven-queue-listener>

By default the SimpleMessageListenerContainer creates a ThreadPoolTaskExecutor with computed values for the core and +max pool sizes. The core pool size is set to twice the number of queues and the max pool size is obtained by multiplying +the number of queues by the value of the maxNumberOfMessages field. If these default values do not meet the need of +the application, a custom task executor can be set with the task-executor attribute (see example below).

<aws-messaging:annotation-driven-queue-listener task-executor="simpleTaskExecutor" />

Message reply

Message listener methods can be annotated with @SendTo to send their return value to another channel. The +SendToHandlerMethodReturnValueHandler uses the defined messaging template set on the +aws-messaging:annotation-driven-queue-listener element to send the return value. The messaging template must implement +the DestinationResolvingMessageSendingOperations interface.

<aws-messaging:annotation-driven-queue-listener send-to-message-template="queueMessagingTemplate"/>
@SqsListener("treeQueue")
+@SendTo("leafsQueue")
+public List<Leaf> extractLeafs(Tree tree) {
+	// ...
+}

In this example the extractLeafs method will receive messages coming from the treeQueue and then return a +List of Leafs which is going to be sent to the leafsQueue. Note that on the +aws-messaging:annotation-driven-queue-listener XML element there is an attribute send-to-message-template +that specifies QueueMessagingTemplate as the messaging template to be used to send the return value of the message +listener method.

5.2.4 The SimpleMessageListenerContainerFactory

The SimpleMessageListenerContainer can also be configured with Java by creating a bean of type SimpleMessageListenerContainerFactory.

@Bean
+public SimpleMessageListenerContainerFactory simpleMessageListenerContainerFactory(AmazonSQSAsync amazonSqs) {
+	SimpleMessageListenerContainerFactory factory = new SimpleMessageListenerContainerFactory();
+	factory.setAmazonSqs(amazonSqs);
+	factory.setAutoStartup(false);
+	factory.setMaxNumberOfMessages(5);
+	// ...
+
+	return factory;
+}

5.2.5 Consuming AWS Event messages with Amazon SQS

It is also possible to receive AWS generated event messages with the SQS message listeners. Because +AWS messages does not contain the mime-type header, the Jackson message converter has to be configured +with the strictContentTypeMatch property false to also parse message without the proper mime type.

The next code shows the configuration of the message converter using the QueueMessageHandlerFactory +and re-configuring the MappingJackson2MessageConverter

@Bean
+public QueueMessageHandlerFactory queueMessageHandlerFactory() {
+	QueueMessageHandlerFactory factory = new QueueMessageHandlerFactory();
+	MappingJackson2MessageConverter messageConverter = new MappingJackson2MessageConverter();
+
+	//set strict content type match to false
+	messageConverter.setStrictContentTypeMatch(false);
+	factory.setArgumentResolvers(Collections.<HandlerMethodArgumentResolver>singletonList(new PayloadArgumentResolver(messageConverter)));
+	return factory;
+}

With the configuration above, it is possible to receive event notification for S3 buckets (and also other + event notifications like elastic transcoder messages) inside @SqsListener annotated methods s shown below.

@SqsListener("testQueue")
+public void receive(S3EventNotification s3EventNotificationRecord) {
+	S3EventNotification.S3Entity s3Entity = s3EventNotificationRecord.getRecords().get(0).getS3();
+}

5.3 SNS support

Amazon SNS is a publish-subscribe messaging system that allows clients to publish notification to a particular topic. Other +interested clients may subscribe using different protocols like HTTP/HTTPS, e-mail or an Amazon SQS queue to receive the messages.

The next graphic shows a typical example of an Amazon SNS architecture.

SNS Overview

Spring Cloud AWS supports Amazon SNS by providing support to send notifications with a NotificationMessagingTemplate and +to receive notifications with the HTTP/HTTPS endpoint using the Spring Web MVC @Controller based programming model. Amazon +SQS based subscriptions can be used with the annotation-driven message support that is provided by the Spring Cloud AWS messaging module.

5.3.1 Sending a message

The NotificationMessagingTemplate contains two convenience methods to send a notification. The first one specifies the +destination using a String which is going to be resolved against the SNS API. The second one takes no destination +argument and uses the default destination. All the usual send methods that are available on the MessageSendingOperations +are implemented but are less convenient to send notifications because the subject must be passed as header.

[Note]Note

Currently only String payloads can be sent using the NotificationMessagingTemplate as this is the expected +type by the SNS API.

import com.amazonaws.services.sns.AmazonSNS;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.cloud.aws.messaging.core.NotificationMessagingTemplate;
+
+public class SnsNotificationSender {
+
+	private final NotificationMessagingTemplate notificationMessagingTemplate;
+
+	@Autowired
+	public SnsNotificationSender(AmazonSNS amazonSns) {
+		this.notificationMessagingTemplate = new NotificationMessagingTemplate(amazonSns);
+	}
+
+	public void send(String subject, String message) {
+		this.notificationMessagingTemplate.sendNotification("physicalTopicName", message, subject);
+	}
+}

This example constructs a new NotificationMessagingTemplate by passing an AmazonSNS client as argument. In the send +method the convenience sendNotification method is used to send a message with subject to an SNS topic. The +destination in the sendNotification method is a string value that must match the topic name defined on AWS. This value +is resolved at runtime by the Amazon SNS client. Optionally a ResourceIdResolver implementation can be passed to the +NotificationMessagingTemplate constructor to resolve resources by logical name when running inside a CloudFormation stack. +(See Chapter 4, Managing cloud environments for more information about resource name resolution.)

It is recommended to use the XML messaging namespace to create NotificationMessagingTemplate as it will automatically +configure the SNS client to setup the default converter.

<aws-messaging:notification-messaging-template id="notificationMessagingTemplate" />

5.3.2 Annotation-driven HTTP notification endpoint

SNS supports multiple endpoint types (SQS, Email, HTTP, HTTPS), Spring Cloud AWS provides support for HTTP(S) endpoints. +SNS sends three type of requests to an HTTP topic listener endpoint, for each of them annotations are provided:

  • Subscription request → @NotificationSubscriptionMapping
  • Notification request → @NotificationMessageMapping
  • Unsubscription request → @NotificationUnsubscribeMapping

HTTP endpoints are based on Spring MVC controllers. Spring Cloud AWS added some custom argument resolvers to extract +the message and subject out of the notification requests.

@Controller
+@RequestMapping("/topicName")
+public class NotificationTestController {
+
+	@NotificationSubscriptionMapping
+	public void handleSubscriptionMessage(NotificationStatus status) throws IOException {
+		//We subscribe to start receive the message
+		status.confirmSubscription();
+	}
+
+	@NotificationMessageMapping
+	public void handleNotificationMessage(@NotificationSubject String subject, @NotificationMessage String message) {
+		// ...
+	}
+
+	@NotificationUnsubscribeConfirmationMapping
+	public void handleUnsubscribeMessage(NotificationStatus status) {
+		//e.g. the client has been unsubscribed and we want to "re-subscribe"
+		status.confirmSubscription();
+	}
+}
[Caution]Caution

Currently it is not possible to define the mapping URL on the method level therefore the RequestMapping must +be done at type level and must contain the full path of the endpoint.

This example creates a new Spring MVC controller with three methods to handle the three requests listed above. In order +to resolve the arguments of the handleNotificationMessage methods a custom argument resolver must be registered. The +XML configuration is listed below.

<mvc:annotation-driven>
+	<mvc:argument-resolvers>
+		<ref bean="notificationResolver" />
+	</mvc:argument-resolvers>
+</mvc:annotation-driven>
+
+<aws-messaging:notification-argument-resolver id="notificationResolver" />

The aws-messaging:notification-argument-resolver element registers three argument resolvers: +NotificationStatusHandlerMethodArgumentResolver, NotificationMessageHandlerMethodArgumentResolver, +and NotificationSubjectHandlerMethodArgumentResolver.

5.4 Using CloudFormation

Amazon SQS queues and SNS topics can be configured within a stack and then be used by applications. Spring Cloud AWS +also supports the lookup of stack-configured queues and topics by their logical name with the resolution to the physical +name. The example below shows an SNS topic and SQS queue configuration inside a CloudFormation template.

"LogicalQueueName": {
+	"Type": "AWS::SQS::Queue",
+	"Properties": {
+	}
+},
+"LogicalTopicName": {
+	"Type": "AWS::SNS::Topic",
+	"Properties": {
+  	}
+}

The logical names LogicalQueueName and LogicalTopicName can then be used in the configuration and in the application +as shown below:

<aws-messaging:queue-messaging-template default-destination="LogicalQueueName" />
+
+<aws-messaging:notification-messaging-template default-destination="LogicalTopicName" />
@SqsListener("LogicalQueueName")
+public void receiveQueueMessages(Person person) {
+	// Logical names can also be used with messaging templates
+	this.notificationMessagingTemplate.sendNotification("anotherLogicalTopicName", "Message", "Subject");
+}

When using the logical names like in the example above, the stack can be created on different environments without any +configuration or code changes inside the application.

6. Caching

Caching in a cloud environment is useful for applications to reduce the latency and to save database round trips. +Reducing database round trips can significantly reduce the requirements for the database instance. The Spring Framework +provides, since version 3.1, a unified Cache abstraction to allow declarative caching in applications analogous to the +declarative transactions.

Spring Cloud AWS integrates the Amazon ElastiCache service into the Spring unified +caching abstraction providing a cache manager based on the memcached and Redis protocols. The caching support for Spring +Cloud AWS provides its own memcached implementation for ElastiCache and uses +Spring Data Redis for Redis caches.

6.1 Configuring dependencies for Redis caches

Spring Cloud AWS delivers its own implementation of a memcached cache, therefore no other dependencies are needed. For Redis +Spring Cloud AWS relies on Spring Data Redis to support caching and also to allow multiple Redis drivers to be used. Spring +Cloud AWS supports all Redis drivers that Spring Data Redis supports (currently Jedis, JRedis, SRP and Lettuce) with Jedis + being used internally for testing against ElastiCache. A dependency definition for Redis with Jedis is shown in the example

<dependencies>
+    <dependency>
+        <groupId>org.springframework.data</groupId>
+        <artifactId>spring-data-redis</artifactId>
+        <version>${spring-data-redis.version}</version>
+    </dependency>
+    <dependency>
+    	<groupId>redis.clients</groupId>
+    	<artifactId>jedis</artifactId>
+    	<version>2.6.1</version>
+    </dependency>
+</dependencies>

Spring Cloud AWS will automatically detect the Redis driver and will use one of them automatically.

6.2 Configuring caching with XML

The cache support for Spring Cloud AWS resides in the context module and can therefore be used if the context module +is already imported in the project. The cache integration provides its own namespace to configure cache clusters that are +hosted in the Amazon ElastiCache service. The next example contains a configuration for the cache cluster and the Spring +configuration to enable declarative, annotation-based caching.

<beans xmlns:aws-cache="http://www.springframework.org/schema/cloud/aws/cache"
+	   xmlns:cache="http://www.springframework.org/schema/cache"
+	   xmlns="http://www.springframework.org/schema/beans"
+	   xsi:schemaLocation="http://www.springframework.org/schema/cloud/aws/cache
+	   	http://www.springframework.org/schema/cloud/aws/cache/spring-cloud-aws-cache.xsd
+	   	http://www.springframework.org/schema/cache
+	   	https://www.springframework.org/schema/cache/spring-cache.xsd">
+
+	<aws-context:context-credentials>
+		...
+        </aws-context:context-credentials>
+
+	<aws-cache:cache-manager>
+		<aws-cache:cache-cluster name="CacheCluster" />
+	</aws-cache:cache-manager>
+
+	<cache:annotation-driven />
+</beans>

The configuration above configures a cache-manager with one cache with the name CacheCluster that represents an +ElasticCache cluster.

6.2.1 Mixing caches

Applications may have the need for multiple caches that are maintained by one central cache cluster. The Spring Cloud +AWS caching support allows to define multiple caches inside one cache manager and also to use externally defined caches +inside the cache manager.

The example below demonstrates a configuration example that contains a pre-configured cache with a cache-ref element +(which might be a local cache) and a cache-cluster configuration for ElastiCache cache clusters.

<beans ...>
+	<aws-cache:cache-manager id="cacheManager">
+		<aws-cache:cache-ref ref="memcached" />
+		<aws-cache:cache-cluster name="SimpleCache"/>
+	</aws-cache:cache-manager>
+</beans>

6.2.2 Defining expiration

The Spring cache demarcation does not support expiry time configuration and leaves it up to the cache implementation +to support an expiry time. The Spring Cloud AWS cache configuration supports the expiry time setting per cache. The +expiry time will be passed to the memcached service.

The cache-cluster element accepts an expiration attribute that defines the expiration time in seconds. +No configured values implies that there is an infinite expiration time.

<beans>
+	<aws-cache:cache-manager>
+		<aws-cache:cache-cluster expiration="10000" name="CacheCluster" />
+	</aws-cache:cache-manager>
+</beans>

6.3 Configuring caching using Java configuration

Spring Cloud AWS also support the cache configuration with Java configuration classes. On any Configuration class, +the caching can be configured using the org.springframework.cloud.aws.cache.config.annotation.EnableElastiCache +annotation provided by Spring Cloud AWS. The next example shows a configuration of two cache clusters.

@EnableElastiCache({@CacheClusterConfig(name = "firstCache"), @CacheClusterConfig(name = "secondCache")})
+public class ApplicationConfiguration {
+}
[Important]Important

If you leave the value attribute empty, then all the caches inside your CloudFormation stack (if available) +will be configured automatically.

6.3.1 Configuring expiry time for caches

The Java configuration also allows to configure the expiry time for the caches. This can be done for all +caches using the defaultExpiration attribute as shown in the example below.

@EnableElastiCache(defaultExpiration = 23)
+public class ApplicationConfiguration {
+}

The expiration can be defined on a cache level using the @CacheClusterConfig annotations expiration attribute as shown below (using seconds as +the value).

@EnableElastiCache({@CacheClusterConfig(name = "firstCache", expiration = 23), @CacheClusterConfig(name = "secondCache", expiration = 42)})
+public class ApplicationConfiguration {
+}

6.4 Configuring caching in Spring Boot

The caches will automatically be configured in Spring Boot without any explicit configuration property.

6.5 Using caching

Based on the configuration of the cache, developers can annotate their methods to use the caching for method return values. +The next example contains a caching declaration for a service for which the return values should be cached

@Service
+public class ExpensiveService {
+
+    @Cacheable("CacheCluster")
+    public String calculateExpensiveValue(String key) {
+		...
+    }
+}

6.6 Memcached client implementation

There are different memcached client implementations available for Java, the most prominent ones are +Spymemcached and XMemcached. +Amazon AWS supports a dynamic configuration and delivers an enhanced memcached client based on Spymemcached to support the +auto-discovery of new nodes based on +a central configuration endpoint.

Spring Cloud AWS relies on the Amazon ElastiCache Client implementation and therefore has a dependency on that.

6.7 Using CloudFormation

Amazon ElastiCache clusters can also be configured within a stack and then be used by applications. Spring Cloud AWS +also supports the lookup of stack-configured cache clusters by their logical name with the resolution to the physical +name. The example below shows a cache cluster configuration inside a CloudFormation template.

"CacheCluster": {
+	"Type": "AWS::ElastiCache::CacheCluster",
+	"Properties": {
+	    "AutoMinorVersionUpgrade": "true",
+	    "Engine": "memcached",
+	    "CacheNodeType": "cache.t2.micro",
+	    "CacheSubnetGroupName" : "sample",
+	    "NumCacheNodes": "1",
+	    "VpcSecurityGroupIds": ["sample1"]
+	}
+}

The cache cluster can then be used with the name CacheCluster inside the application configuration as shown below:

<beans...>
+    <aws-cache:cache-manager>
+    	<aws-cache:cache-cluster name="CacheCluster" expiration="15"/>
+    </aws-cache:cache-manager>
+<beans>

With the configuration above the application can be deployed with multiple stacks on different environments +without any configuration change inside the application.

7. Data Access with JDBC

Spring has a broad support of data access technologies built on top of JDBC like JdbcTemplate and dedicated ORM (JPA, +Hibernate support). Spring Cloud AWS enables application developers to re-use their JDBC technology of choice and access the +Amazon Relational Database Service with a declarative configuration. The main support provided by Spring +Cloud AWS for JDBC data access are:

  • Automatic data source configuration and setup based on the Amazon RDS database instance.
  • Automatic read-replica detection and configuration for Amazon RDS database instances.
  • Retry-support to handle exception during Multi-AZ failover inside the data center.

7.1 Configuring data source

Before using and configuring the database support, the application has to include the respective module dependency +into its Maven configuration. Spring Cloud AWS JDBC support comes as a separate module to allow the modularized use of the +modules.

7.1.1 Maven dependency configuration

The Spring Cloud AWS JDBC module comes as a standalone module and can be imported with the following dependency declaration.

<dependency>
+	<groupId>org.springframework.cloud</groupId>
+	<artifactId>spring-cloud-aws-jdbc</artifactId>
+	<version>{spring-cloud-version}</version>
+</dependency>

7.1.2 Basic data source configuration

The data source configuration requires the security and region configuration as a minimum allowing Spring Cloud AWS to retrieve +the database metadata information with the Amazon RDS service. Spring Cloud AWS provides an additional jdbc specific namespace +to configure the data source with the minimum attributes as shown in the example:

<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	   xmlns:jdbc="http://www.springframework.org/schema/cloud/aws/jdbc"
+	   xmlns="http://www.springframework.org/schema/beans"
+	   xsi:schemaLocation="http://www.springframework.org/schema/cloud/aws/jdbc
+	   http://www.springframework.org/schema/cloud/aws/jdbc/spring-cloud-aws-jdbc.xsd">
+
+ <aws-context:context-credentials>
+  ...
+ </aws-context:context-credentials>
+
+ <aws-context:context-region region="..."/>
+
+<jdbc:data-source
+		 db-instance-identifier="myRdsDatabase"
+		 password="${rdsPassword}">
+</jdbc:data-source>
+</beans>

The minimum configuration parameters are a unique id for the data source, a valid db-instance-identifier attribute +that points to a valid Amazon RDS database instance. The master user password for the master user. If there is another +user to be used (which is recommended) then the username attribute can be set.

With this configuration Spring Cloud AWS fetches all the necessary metadata and creates a +Tomcat JDBC pool with the default properties. The data source +can be later injected into any Spring Bean as shown below:

@Service
+public class SimpleDatabaseService implements DatabaseService {
+
+ private final JdbcTemplate jdbcTemplate;
+
+ @Autowired
+ public SimpleDatabaseService(DataSource dataSource) {
+ 	this.jdbcTemplate = new JdbcTemplate(dataSource);
+ }
+}

It is possible to qualify the data source injection point with an @Qualifier annotation to allow multiple data source +configurations inside one application context and still use auto-wiring.

7.1.3 Data source pool configuration

Spring Cloud AWS creates a new Tomcat JDBC pool with the default properties. Often these default properties do not meet the +requirements of the application with regards to pool size and other settings. The data source configuration supports the configuration +of all valid pool properties with a nested XML element. The following example demonstrates the re-configuration of the data source +with custom pool properties.

<beans ..>
+
+ <aws-context:context-credentials>
+  ...
+ </aws-context:context-credentials>
+
+ <aws-context:context-region region="..."/>
+
+ <jdbc:data-source
+		 db-instance-identifier="myRdsDatabase"
+		 password="${rdsPassword}">
+		 <jdbc:pool-attributes initialSize="1" " maxActive="200" minIdle="10"
+         		testOnBorrow="true" validationQuery="SELECT 1" />
+ </jdbc:data-source>
+
+</beans>

A full list of all configuration attributes with their value is available here.

7.2 Configuring data source with Java config

Spring Cloud AWS also supports the configuration of the data source within an @Configuration class. The +org.springframework.cloud.aws.jdbc.config.annotation.EnableRdsInstance annotation can be used to configure one data +source. Multiple ones can be used to configure more then one data source. Each annotation will generate exactly one +data source bean.

The class below shows a data source configuration inside a configuration class

@Configuration
+@EnableRdsInstance(dbInstanceIdentifier = "test",password = "secret", readReplicaSupport = true)
+public class ApplicationConfiguration {
+}
[Tip]Tip

The configuration attributes are the same in the XML element. The required attributes are also the same +for the XML configuration (the dbInstanceIdentifier and password attribute)

7.2.1 Java based data source pool configuration

It is also possible to override the pool configuration with custom values. Spring Cloud AWS provides a +org.springframework.cloud.aws.jdbc.config.annotation.RdsInstanceConfigurer that creates a +org.springframework.cloud.aws.jdbc.datasource.DataSourceFactory which might contain custom pool attributes. The next +examples shows the implementation of one configurer that overrides the validation query and the initial size.

@Configuration
+@EnableRdsInstance(dbInstanceIdentifier = "test",password = "secret")
+public class ApplicationConfiguration {
+
+    @Bean
+    public RdsInstanceConfigurer instanceConfigurer() {
+        return new RdsInstanceConfigurer() {
+            @Override
+        	public DataSourceFactory getDataSourceFactory() {
+        		TomcatJdbcDataSourceFactory dataSourceFactory = new TomcatJdbcDataSourceFactory();
+        		dataSourceFactory.setInitialSize(10);
+        		dataSourceFactory.setValidationQuery("SELECT 1 FROM DUAL");
+        		return dataSourceFactory;
+        	}
+        };
+    }
+}
[Tip]Tip

This class returns an anonymous class of type org.springframework.cloud.aws.jdbc.config.annotation.RdsInstanceConfigurer, + which might also of course be a standalone class.

7.3 Configuring data source in Spring Boot

The data sources can also be configured using the Spring Boot configuration files. Because of the dynamic number of +data sources inside one application, the Spring Boot properties must be configured for each data source.

A data source configuration consists of the general property name cloud.aws.rds.<instanceName> for the data source identifier +following the sub properties for the particular data source where instanceName is the name of the concrete instance. The table below +outlines all properties for a data source using test as the instance identifier.

propertyexampledescription

cloud.aws.rds.test

 

The configuration property that configures a data source with the name test

cloud.aws.rds.test.password

verySecret

The password for the db instance test

cloud.aws.rds.test.username

admin

The username for the db instance test (optional)

cloud.aws.rds.test.readReplicaSupport

true

If read-replicas should be used for the data source (see below)

cloud.aws.rds.test.databaseName

fooDb

Custom database name if the default one from rds should not be used

7.4 Read-replica configuration

Amazon RDS allows to use MySQL read-replica +instances to increase the overall throughput of the database by offloading read data access to one or more read-replica +slaves while maintaining the data in one master database.

Spring Cloud AWS supports the use of read-replicas in combination with Spring read-only transactions. If the read-replica +support is enabled, any read-only transaction will be routed to a read-replica instance while using the master database +for write operations.

[Caution]Caution

Using read-replica instances does not guarantee strict ACID semantics for the database +access and should be used with care. This is due to the fact that the read-replica might be behind and a write might not +be immediately visible to the read transaction. Therefore it is recommended to use read-replica instances only for transactions that read +data which is not changed very often and where outdated data can be handled by the application.

The read-replica support can be enabled with the read-replica attribute in the datasource configuration.

<beans ..>
+ <jdbc:data-source db-instance-identifier="RdsSingleMicroInstance"
+	password="${rdsPassword}" read-replica-support="true">
+
+ </jdbc:data-source>
+</beans>

Spring Cloud AWS will search for any read-replica that is created for the master database and route the read-only transactions +to one of the read-replicas that are available. A business service that uses read-replicas can be implemented like shown +in the example.

@Service
+public class SimpleDatabaseService {
+
+	private final JdbcTemplate jdbcTemplate;
+
+	@Autowired
+	public SimpleDatabaseService(DataSource dataSource) {
+		this.jdbcTemplate = new JdbcTemplate(dataSource);
+	}
+
+	@Transactional(readOnly = true)
+	public Person loadAll() {
+		// read data on the read replica
+	}
+
+	@Transactional
+	public void updatePerson(Person person) {
+		// write data into database
+	}
+}

7.5 Failover support

Amazon RDS supports a Multi-AZ fail-over if +one availability zone is not available due to an outage or failure of the primary instance. The replication is synchronous +(compared to the read-replicas) and provides continuous service. Spring Cloud AWS supports a Multi-AZ failover with a retry +mechanism to recover transactions that fail during a Multi-AZ failover.

[Note]Note

In most cases it is better to provide direct feedback to a user instead of trying potentially long and frequent retries within +a user interaction. Therefore the fail-over support is primarily useful for batch application or applications where the +responsiveness of a service call is not critical.

The Spring Cloud AWS JDBC module provides a retry interceptor that can be used to decorate services with an interceptor. +The interceptor will retry the database operation again if there is a temporary error due to a Multi-AZ failover. A Multi-AZ +failover typically lasts only a couple of seconds, therefore a retry of the business transaction will likely succeed.

The interceptor can be configured as a regular bean and then be used by a pointcut expression to decorate the respective +method calls with the interceptor. The interceptor must have a configured database to retrieve the current status (if it +is a temporary fail-over or a permanent error) from the Amazon RDS service.

The configuration for the interceptor can be done with a custom element from the Spring Cloud AWS jdbc namespace and +will be configured like shown:

<beans ..>
+	<jdbc:retry-interceptor id="myInterceptor"
+		db-instance-identifier="myRdsDatabase"
+		max-number-of-retries="10" />
+</beans>

The interceptor itself can be used with any Spring advice configuration to wrap the respective service. A pointcut +for the services shown in the chapter before can be defined as follows:

<beans ..>
+ <aop:config>
+  <aop:advisor advice-ref="myInterceptor" pointcut="bean(simpleDatabaseService)" order="1" />
+ </aop:config>
+</beans>
[Caution]Caution

It is important that the interceptor is called outside the transaction interceptor to ensure that the whole transaction +will be re-executed. Configuring the interceptor inside the transaction interceptor will lead to a permanent error because +the broken connection will never be refreshed.

The configuration above in combination with a transaction configuration will produce the following proxy configuration +for the service.

Retry interceptor

7.6 CloudFormation support

Spring Cloud AWS supports database instances that are configured with CloudFormation. Spring Cloud AWS can use the logical +name inside the database configuration and lookup the concrete database with the generated physical resource name. A database +configuration can be easily configured in CloudFormation with a template definition that might look like the following +example.

"myRdsDatabase": {
+ 	"Type": "AWS::RDS::DBInstance",
+ 	"Properties": {
+ 	 "AllocatedStorage": "5",
+ 	 "DBInstanceClass": "db.t1.micro",
+ 	 "DBName": "test",
+ 	 "Engine": "mysql",
+ 	 "MasterUsername": "admin",
+ 	 "MasterUserPassword": {"Ref":"RdsPassword"},
+ 	 ...
+ 	}
+ },
+ "readReplicaDatabase": {
+ 	"Type": "AWS::RDS::DBInstance",
+ 	"Properties": {
+ 	 "AllocatedStorage" : "5",
+ 	 "SourceDBInstanceIdentifier": {
+ 	 	"Ref": "myRdsDatabase"
+ 	 },
+ 	 "DBInstanceClass": "db.t1.micro"
+ 	}
+ }
+}

The database can then be configured using the name set in the template. Also, the read-replica can +be enabled to use the configured read-replica database in the application. A configuration to use the configured +database is outlined below:

<beans>
+ <aws-context:stack-configuration/>
+
+ <jdbc:data-source db-instance-identifier="myRdsDatabase" password="${rdsPassword}" read-replica-support="true"/>
+</beans>

7.7 Database tags

Amazon RDS instances can also be configured using RDS database specific tags, allowing users to configure database specific +configuration metadata with the database. Database instance specific tags can be configured using the user-tags-map attribute +on the data-source element. Configure the tags support like in the example below:

<jdbc:data-source
+	db-instance-identifier="myRdsDatabase"
+	password="${rdsPassword}" user-tags-map="dbTags" />

That allows the developer to access the properties in the code using expressions like shown in the class below:

public class SampleService {
+
+	@Value("#{dbTags['aws:cloudformation:aws:cloudformation:stack-name']}")
+	private String stackName;
+}
[Note]Note

The database tag aws:cloudformation:aws:cloudformation:stack-name is a default tag that is created if the +database is configured using CloudFormation.

8. Sending mails

Spring has a built-in support to send e-mails based on the Java Mail API +to avoid any static method calls while using the Java Mail API and thus supporting the testability of an application. +Spring Cloud AWS supports the Amazon SES as an implementation of the Spring Mail abstraction.

As a result Spring Cloud AWS users can decide to use the Spring Cloud AWS implementation of the Amazon SES service or +use the standard Java Mail API based implementation that sends e-mails via SMTP to Amazon SES.

[Tip]Tip

It is preferred to use the Spring Cloud AWS implementation instead of SMTP mainly for performance reasons. +Spring Cloud AWS uses one API call to send a mail message, while the SMTP protocol makes multiple requests (EHLO, MAIL FROM, RCPT TO, DATA, QUIT) +until it sends an e-mail.

8.1 Configuring the mail sender

Spring Cloud AWS provides an XML element to configure a Spring org.springframework.mail.MailSender implementation for the +client to be used. The default mail sender works without a Java Mail dependency and is capable of sending messages without +attachments as simple mail messages. A configuration with the necessary elements will look like this:

<beans xmlns:aws-mail="http://www.springframework.org/schema/cloud/aws/mail"
+   xsi:schemaLocation="http://www.springframework.org/schema/cloud/aws/mail
+      http://www.springframework.org/schema/cloud/aws/mail/spring-cloud-aws-mail.xsd">
+
+	<aws-context:context-credentials>
+	  ..
+	</aws-context:context-credentials>
+
+	<aws-context:context-region region="eu-west-1" />
+
+	<aws-mail:mail-sender id="testSender" />
+
+</beans>

8.2 Sending simple mails

Application developers can inject the MailSender into their application code and directly send simple text based e-mail +messages. The sample below demonstrates the creation of a simple mail message.

public class MailSendingService {
+
+	private MailSender mailSender;
+
+	@Autowired
+	public MailSendingService(MailSender mailSender) {
+		this.mailSender = mailSender;
+	}
+
+	public void sendMailMessage() {
+		SimpleMailMessage simpleMailMessage = new SimpleMailMessage();
+		simpleMailMessage.setFrom("foo@bar.com");
+		simpleMailMessage.setTo("bar@baz.com");
+		simpleMailMessage.setSubject("test subject");
+		simpleMailMessage.setText("test content");
+		this.mailSender.send(simpleMailMessage);
+	}
+}

8.3 Sending attachments

Sending attachments with e-mail requires MIME messages to be created and sent. In order to create MIME messages, +the Java Mail dependency is required and has to be included in the classpath. Spring Cloud AWS will detect the +dependency and create a org.springframework.mail.javamail.JavaMailSender implementation that allows to create and +build MIME messages and send them. A dependency configuration for the Java Mail API is the only change in the configuration +which is shown below.

<dependency>
+	<groupId>javax.mail</groupId>
+	<artifactId>mailapi</artifactId>
+	<version>1.4.1</version>
+	<exclusions>
+		<!-- exclusion because we are running on Java 1.7 that includes the activation API by default-->
+		<exclusion>
+			<artifactId>activation</artifactId>
+			<groupId>javax.activation</groupId>
+		</exclusion>
+	</exclusions>
+</dependency>
[Note]Note

Even though there is a dependency to the Java Mail API there is still the Amazon SES API used underneath to send mail +messages. There is no SMTP setup required +on the Amazon AWS side.

Sending the mail requires the application developer to use the JavaMailSender to send an e-mail as shown in the example +below.

public class MailSendingService {
+
+	private JavaMailSender mailSender;
+
+   	@Autowired
+	public MailSendingService(JavaMailSender mailSender) {
+		this.mailSender = mailSender;
+	}
+
+	public void sendMailMessage() {
+		this.mailSender.send(new MimeMessagePreparator() {
+
+   			@Override
+   			public void prepare(MimeMessage mimeMessage) throws Exception {
+   				MimeMessageHelper helper =
+   					new MimeMessageHelper(mimeMessage, true, "UTF-8");
+   				helper.addTo("foo@bar.com");
+   				helper.setFrom("bar@baz.com");
+   				helper.addAttachment("test.txt", ...);
+   				helper.setSubject("test subject with attachment");
+   				helper.setText("mime body", false);
+   			}
+   		});
+	}
+}

8.4 Configuring regions

Amazon SES is not available in all regions of the +Amazon Web Services cloud. Therefore an application hosted and operated in a region that does not support the mail +service will produce an error while using the mail service. Therefore the region must be overridden for the mail +sender configuration. The example below shows a typical combination of a region (EU-CENTRAL-1) that does not provide +an SES service where the client is overridden to use a valid region (EU-WEST-1).

<beans ...>
+
+ <aws-context:context-region region="eu-central-1" />
+ <aws-mail:mail-sender id="testSender" region="eu-west-1"/>
+
+</beans>

8.5 Authenticating e-mails

To avoid any spam attacks on the Amazon SES mail service, applications without production access must +verify each +e-mail receiver otherwise the mail sender will throw a com.amazonaws.services.simpleemail.model.MessageRejectedException.

Production access can be requested +and will disable the need for mail address verification.

9. Resource handling

The Spring Framework provides a org.springframework.core.io.ResourceLoader abstraction to load files from the filesystem, +servlet context and the classpath. Spring Cloud AWS adds support for the Amazon S3 service +to load and write resources with the resource loader and the s3 protocol.

The resource loader is part of the context module, therefore no additional dependencies are necessary to use the resource +handling support.

9.1 Configuring the resource loader

Spring Cloud AWS does not modify the default resource loader unless it encounters an explicit configuration with an XML namespace element. +The configuration consists of one element for the whole application context that is shown below:

<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	   xmlns:aws-context="http://www.springframework.org/schema/cloud/aws/context"
+	   xsi:schemaLocation="http://www.springframework.org/schema/cloud/aws/context
+	   http://www.springframework.org/schema/cloud/aws/context/spring-cloud-aws-context.xsd">
+
+	<aws-context:context-credentials>
+    		...
+        </aws-context:context-credentials>
+
+	<aws-context:context-resource-loader/>
+</beans>

9.2 Downloading files

Downloading files can be done by using the s3 protocol to reference Amazon S3 buckets and objects inside their bucket. The +typical pattern is s3://<bucket>/<object> where bucket is the global and unique bucket name and object is a valid object +name inside the bucket. The object name can be a file in the root folder of a bucket or a nested file within a directory +inside a bucket.

The next example demonstrates the use of the resource loader to load different resources.

public class SimpleResourceLoadingBean {
+
+	@Autowired
+	private ResourceLoader resourceLoader;
+
+	public void resourceLoadingMethod() throws IOException {
+		Resource resource = this.resourceLoader.getResource("s3://myBucket/rootFile.log");
+		Resource secondResource = this.resourceLoader.getResource("s3://myBucket/rootFolder/subFile");
+
+		InputStream inputStream = resource.getInputStream();
+		//read file
+	}
+}

9.3 Uploading files

Since Spring Framework 3.1 the resource loader can also be used to upload files with the org.springframework.core.io.WritableResource +interface which is a specialization of the org.springframework.core.io.ResourceLoader interface. Clients can upload files +using the WritableResource interface. The next example demonstrates an upload of a resource using the resource loader.

public class SimpleResourceLoadingBean {
+
+    @Autowired
+    private ResourceLoader resourceLoader;
+
+    public void writeResource() throws IOException {
+        Resource resource = this.resourceLoader.getResource("s3://myBucket/rootFile.log");
+        WritableResource writableResource = (WritableResource) resource;
+        try (OutputStream outputStream = writableResource.getOutputStream()) {
+            outputStream.write("test".getBytes());
+        }
+    }
+}

9.3.1 Uploading multi-part files

Amazon S3 supports multi-part uploads to +increase the general throughput while uploading. Spring Cloud AWS by default only uses one thread to upload the files and +therefore does not provide parallel upload support. Users can configure a custom org.springframework.core.task.TaskExecutor +for the resource loader. The resource loader will queue multiple threads at the same time to use parallel multi-part uploads.

The configuration for a resource loader that uploads with 10 Threads looks like the following

<beans ...>
+  <aws-context:context-resource-loader task-executor="executor" />
+  <task:executor id="executor" pool-size="10" queue-capacity="0" rejection-policy="CALLER_RUNS" />
+</beans>
[Warning]Warning

Spring Cloud AWS consumes up to 5 MB (at a minimum) of memory per thread. Therefore each parallel thread will incur +a memory footprint of 5 MB in the heap, and a thread size of 10 will consume therefore up to 50 mb of heap space. Spring Cloud +AWS releases the memory as soon as possible. Also, the example above shows that there is no queue-capacity configured, +because queued requests would also consume memory.

9.3.2 Uploading with the TransferManager

The Amazon SDK also provides a high-level abstraction that is useful to upload files, also with multiple threads using +the multi-part functionality. A com.amazonaws.services.s3.transfer.TransferManager can be easily created in the application +code and injected with the pre-configured com.amazonaws.services.s3.AmazonS3 client that is already created +with the Spring Cloud AWS resource loader configuration.

This example shows the use of the transferManager within an application to upload files from the hard-drive.

public class SimpleResourceLoadingBean {
+
+	@Autowired
+	private AmazonS3 amazonS3;
+
+	public void withTransferManager() {
+		TransferManager transferManager = new TransferManager(this.amazonS3);
+		transferManager.upload("myBucket","filename",new File("someFile"));
+	}
+}

9.4 Searching resources

The Spring resource loader also supports collecting resources based on an Ant-style path specification. Spring Cloud AWS +offers the same support to resolve resources within a bucket and even throughout buckets. The next example shows the resource +resolution by using different patterns.

public class SimpleResourceLoadingBean {
+
+	@Autowired
+ 	private ResourcePatternResolver resourcePatternResolver;
+
+ 	public void resolveAndLoad() throws IOException {
+ 		Resource[] allTxtFilesInFolder =  this.resourcePatternResolver.getResources("s3://bucket/name/*.txt");
+ 		Resource[] allTxtFilesInBucket =  this.resourcePatternResolver.getResources("s3://bucket/**/*.txt");
+ 		Resource[] allTxtFilesGlobally =  this.resourcePatternResolver.getResources("s3://**/*.txt");
+ 	}
+}
[Warning]Warning

Resolving resources throughout all buckets can be very time consuming depending on the number of buckets a user owns.

9.5 Using CloudFormation

CloudFormation also allows to create buckets during stack creation. These buckets will typically have a generated name +that must be used as the bucket name. In order to allow application developers to define static names inside their +configuration, Spring Cloud AWS provides support to resolve the generated bucket names. +Application developers can use the org.springframework.cloud.aws.core.env.ResourceIdResolver interface to resolve the +physical names that are generated based on the logical names.

The next example shows a bucket definition inside a CloudFormation stack template. The bucket will be created with a name +like integrationteststack-sampleBucket-23qysofs62tc2

{
+	"Resources": {
+		"sampleBucket": {
+			"Type": "AWS::S3::Bucket"
+		}
+	}
+}

Application developers can resolve that name and use it to load resources as shown in the next example below.

public class SimpleResourceLoadingBean {
+
+	private final ResourceLoader loader;
+	private final ResourceIdResolver idResolver;
+
+	@Autowired
+	public SimpleResourceLoadingBean(ResourceLoader loader, ResourceIdResolver idResolver) {
+		this.loader = loader;
+		this.idResolver = idResolver;
+	}
+
+	public void resolveAndLoad() {
+		String sampleBucketName = this.idResolver.
+			resolveToPhysicalResourceId("sampleBucket");
+		Resource resource = this.loader.
+			getResource("s3://" + sampleBucketName + "/test");
+	}
+}
\ No newline at end of file diff --git a/spring-cloud-aws/1.2.4.RELEASE/spring-cloud-aws.xml b/spring-cloud-aws/1.2.4.RELEASE/spring-cloud-aws.xml new file mode 100644 index 00000000..5a9f8c71 --- /dev/null +++ b/spring-cloud-aws/1.2.4.RELEASE/spring-cloud-aws.xml @@ -0,0 +1,1852 @@ + + + + + +Spring Cloud AWS +2019-05-21 + + + +Agim +Emruli + + + + +Alain +Sahli + + + + + + +Spring Cloud for Amazon Web Services, 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. + +Spring Cloud is released under the non-restrictive Apache 2.0 license. If you would like to contribute to this section of the documentation or if you find an error, please find the source code and issue trackers in the project at github. + + + +Using Amazon Web Services +Amazon provides a Java SDK to issue requests for the all services provided by the +Amazon Web Service platform. Using the SDK, application developers still have to integrate the +SDK into their application with a considerable amount of infrastructure related code. Spring Cloud AWS provides application +developers already integrated Spring-based modules to consume services and avoid infrastructure related code as much as possible. +The Spring Cloud AWS module provides a module set so that application developers can arrange the dependencies based on +their needs for the particular services. The graphic below provides a general overview of all Spring Cloud AWS modules along +with the service support for the respective Spring Cloud AWS services. + + + + + +Overview + + + + +Spring Cloud AWS Core is the core module of Spring Cloud AWS providing basic services for security and configuration +setup. Developers will not use this module directly but rather through other modules. The core module provides support for +cloud based environment configurations providing direct access to the instance based EC2 +metadata and the overall application stack specific CloudFormation metadata. + + +Spring Cloud AWS Context delivers access to the Simple Storage Service via the Spring +resource loader abstraction. Moreover developers can send e-mails using the Simple E-Mail Service +and the Spring mail abstraction. Further the developers can introduce declarative caching using the Spring caching support +and the ElastiCache caching service. + + +Spring Cloud AWS JDBC provides automatic datasource lookup and configuration for the Relational Database Service +which can be used with JDBC or any other support data access technology by Spring. + + +Spring Cloud AWS Messaging enables developers to receive and send messages with the Simple Queueing Service for +point-to-point communication. Publish-subscribe messaging is supported with the integration of the Simple Notification Service. + + + + +Basic setup +Before using the Spring Cloud AWS module developers have to pick the dependencies and configure the Spring Cloud AWS module. +The next chapters describe the dependency management and also the basic configuration for the Spring AWS Cloud project. +
+Spring Cloud AWS maven dependency management +Spring Cloud AWS module dependencies can be used directly in Maven with a direct configuration +of the particular module. The Spring Cloud AWS module includes all transitive dependencies for the Spring modules and +also the Amazon SDK that are needed to operate the modules. The general dependency configuration will look like this: +<dependencies> + <dependency> + <groupId>org.springframework.cloud</groupId> + <artifactId>spring-cloud-aws-context</artifactId> + <version>{spring-cloud-version}</version> + </dependency> +</dependencies> +Different modules can be included by replacing the module name with the respective one (e.g. spring-cloud-aws-messaging +instead of spring-cloud-aws-context) +The example above works with the Maven Central repository. To use the Spring Maven repository (e.g. for milestones or +developer snapshots), you need to specify the repository location in your Maven configuration. For full releases: +<repositories> + <repository> + <id>io.spring.repo.maven.release</id> + <url>https://repo.spring.io/release/</url> + <snapshots><enabled>false</enabled></snapshots> + </repository> +</repositories> +For milestones: +<repositories> + <repository> + <id>io.spring.repo.maven.milestone</id> + <url>https://repo.spring.io/milestone/</url> + <snapshots><enabled>false</enabled></snapshots> + </repository> +</repositories> +
+
+Amazon SDK configuration +The Spring Cloud AWS configuration is currently done using custom elements provided by Spring Cloud AWS namespaces. +JavaConfig will be supported soon. The configuration setup is done directly in Spring XML configuration files +so that the elements can be directly used. Each module of Spring Cloud AWS provides custom namespaces to allow the modular +use of the modules. A typical XML configuration to use Spring Cloud AWS is outlined below: +<beans xmlns="http://www.springframework.org/schema/beans" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:aws-context="http://www.springframework.org/schema/cloud/aws/context" + xsi:schemaLocation="http://www.springframework.org/schema/beans + https://www.springframework.org/schema/beans/spring-beans.xsd + http://www.springframework.org/schema/cloud/aws/context + http://www.springframework.org/schema/cloud/aws/context/spring-cloud-aws-context.xsd"> + + <aws-context:context-region region="..."/> +</beans> +
+SDK credentials configuration +In order to make calls to the Amazon Web Service the credentials must be configured for the the Amazon SDK. Spring Cloud AWS +provides support to configure an application context specific credentials that are used for each service call for requests done +by Spring Cloud AWS components. Therefore there must be exactly one configuration of the credentials for an entire application +context. + +The com.amazonaws.auth.DefaultAWSCredentialsProviderChain is used by all the clients if there is no dedicated credentials + provider defined. This will essentially use the following authentication information + + +use the environment variables AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY + + +use the system properties aws.accessKeyId and aws.secretKey + + +use the user specific profile credentials file + + +use the instance profile credentials (see below) + + + +Based on the overall credentials policy there are different options to configure the credentials. The possible ones are described in +the following sub-chapters. +
+Simple credentials configuration +Credentials for the Amazon SDK consist of an access key (which might be shared) and a secret key (which must not be shared). Both +security attributes can be configured using the XML namespaces for each Amazon SDK service created by the Spring Cloud AWS +module. The overall configuration looks like this +<beans ...> + <aws-context:context-credentials> + <aws-context:simple-credentials access-key="AKIAIO" secret-key="wJalrXUtnFEMI/K7M" /> + </aws-context:context-credentials> +</beans> + +The access-key and secret-key should be externalized into property files (e.g. Spring Boot application configuration) +and not be checked in into the source management system. + +
+
+Instance profile configuration +An instance profile configuration allows to assign +a profile that is authorized by a role while starting an EC2 instance. All calls made from the EC2 instance are then authenticated +with the instance profile specific user role. Therefore there is no dedicated access-key and secret-key needed in the configuration. +The configuration for the instance profile in Spring Cloud AWS looks like this: +<beans ...> + <aws-context:context-credentials> + <aws-context:instance-profile-credentials/> + </aws-context:context-credentials> +</beans> +
+
+Mixing both security configurations +In some cases it is useful to combine both authentication strategies to allow the application to use the instance profile +with a fallback for an explicit access-key and secret-key configuration. This is useful if the application is tested inside +EC2 (e.g. on a test server) and locally for testing. The next snippet shows a combination of both security configurations. +<beans ...> + <aws-context:context-credentials> + <aws-context:instance-profile-credentials/> + <aws-context:simple-credentials access-key="${accessKey:}" secret-key="${secretKey:}"/> + </aws-context:context-credentials> +</beans> + +The access-key and secret-key are defined using a placeholder expressions along with a default value to avoid bootstrap +errors if the properties are not configured at all. + +
+
+
+Region configuration +Amazon Web services are available in different regions. Based +on the custom requirements, the user can host the application on different Amazon regions. The spring-cloud-aws-context +module provides a way to define the region for the entire application context. +
+Explicit region configuration +The region can be explicitly configured using an XML element. This is particularly useful if the region can not be automatically +derived because the application is not hosted on a EC2 instance (e.g. local testing) or the region must be manually overridden. +<beans ...> + <aws-context:context-region region="eu-west-1"/> +</beans> + +It is also allowed to use expressions or placeholders to externalize the configuration and ensure that the region can +be reconfigured with property files or system properties. + +
+
+Automatic region configuration +If the application context is started inside an EC2 instance, then the region can automatically be fetched from the +instance metadata and therefore must +not be configured statically. The configuration will look like this: +<beans ...> + <aws-context:context-region auto-detect="true" /> +</beans> +
+
+Service specific region configuration +A region can also be overridden for particular services if one application context consumes services from different regions. +The configuration can be done globally like described above and configured for each service with a region attribute. +The configuration might look like this for a database service (described later) +<beans ...> + <aws-context:context-region region="eu-central-1" /> + <jdbc:data-source ... region="eu-west-1" /> +</beans> + +While it is theoretically possible to use multiple regions per application, we strongly recommend to write applications that +are hosted only inside one region and split the application if it is hosted in different regions at the same time. + +
+
+
+Spring Boot auto-configuration +Following the Spring Cloud umbrella project, Spring Cloud AWS also provides dedicated Spring Boot support. Spring Cloud +AWS can be configured using Spring Boot properties and will also automatically guess any sensible configuration based on +the general setup. +
+Maven dependencies +Spring Cloud AWS provides a dedicated module to enable the Spring Boot support. That module must be added to the general +maven dependency inside the application. The typical configuration will look like this +<dependencies> + <dependency> + <groupId>org.springframework.cloud</groupId> + <artifactId>spring-cloud-aws-autoconfigure</artifactId> + <version>{spring-cloud-version}</version> + </dependency> +</dependencies> +Additional dependencies to enable particular features like messaging and JDBC have to be added. Spring Cloud AWS will +only configure classes that are available in the Spring Boot application’s classpath. +
+
+Configuring credentials +Spring Boot provides a standard way to define properties with property file or YAML configuration files. Spring Cloud +AWS provides support to configure the credential information with the Spring Boot application configuration files. +Spring Cloud AWS provides the following properties to configure the credentials setup for the whole application. + + + + + + + +property +example +description + + + + +cloud.aws.credentials.accessKey +AKIAIOSFODNN7EXAMPLE +The access key to be used with a static provider + + +cloud.aws.credentials.secretKey +wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY +The secret key to be used with a static provider + + +cloud.aws.credentials.instanceProfile +true +Configures an instance profile credentials provider with no further configuration + + + + +
+
+Configuring region +Like for the credentials, the Spring Cloud AWS module also supports the configuration of the region inside the Spring +Boot configuration files. The region can be automatically detected or explicitly configured (e.g. in case of local tests +against the AWS cloud). +The properties to configure the region are shown below + + + + + + + +property +example +description + + + + +cloud.aws.region.auto +true +Enables automatic region detection based on the EC2 meta data service + + +cloud.aws.region.static +eu-west-1 +Configures a static region for the application. Possible regions are (currently) us-east-1, us-west-1, us-west-2, +eu-west-1, eu-central-1, ap-southeast-1, ap-southeast-1, ap-northeast-1, sa-east-1, cn-north-1 and any custom region +configured with own region meta data + + + + +
+
+
+
+ +Cloud environment +Applications often need environment specific configuration information, especially in changing environments like in the +Amazon cloud environment. Spring Cloud AWS provides a support to retrieve and use environment specific data inside the +application context using common Spring mechanisms like property placeholder or the Spring expression language. +
+Retrieving instance metadata +Instance metadata are available inside an +EC2 environment. The metadata can be queried using a special HTTP address that provides the instance metadata. Spring Cloud +AWS enables application to access this metadata directly in expression or property placeholder without the need to call +an external HTTP service. +
+Enabling instance metadata support with XML +The instance metadata retrieval support is enabled through an XML element like the standard property placeholder in Spring. +The following code sample demonstrates the activation of the instance metadata support inside an application context. +<beans ...> + <aws-context:context-instance-data /> +</beans> + +Instance metadata can be retrieved without an authorized service call, therefore the configuration above does not require +any region or security specific configuration. + +
+
+Enabling instance metadata support with Java +The instance metadata can also be configured within a Java configuration class without the need for an XML configuration. +The next example shows a typical Spring @Configuration class that enables the instance metadata with the +org.springframework.cloud.aws.context.config.annotation.EnableInstanceData +@Configuration +@EnableContextInstanceData +public static class ApplicationConfiguration { +} +
+
+Enabling instance metadata support in Spring Boot +The instance metadata is automatically available in a Spring Boot application as a property source if the application +is running on an EC2 instance. +
+
+Using instance metadata +Instance metadata can be used in XML, Java placeholders and expressions. The example below demonstrates the usage of +instance metadata inside an XML file using placeholders and also the expression referring to the special variable environment +<beans ...> + <bean class="org.springframework.cloud.aws....SimpleConfigurationBean"> + <property name="value1" value="#{environment.ami-id}" /> + <property name="value2" value="#{environment.hostname}" /> + <property name="value3" value="${instance-type}" /> + <property name="value4" value="${instance-id}" /> + </bean> +</beans> +Instance metadata can also be injected with the Spring org.springframework.beans.factory.annotation.Value annotation +directly into Java fields. The next example demonstrates the use of instance metadata inside a Spring bean. +@Component +public class ApplicationInfoBean { + + @Value("${ami-id:N/A}") + private String amiId; + + @Value("${hostname:N/A}") + private String hostname; + + @Value("${instance-type:N/A}") + private String instanceType; + + @Value("${services/domain:N/A}") + private String serviceDomain; +} + +Every instance metadata can be accessed by the key available in the instance metadata service +Nested properties can be accessed by separating the properties with a slash ('/'). + +
+
+Using instance user data +Besides the default instance metadata it is also possible to configure user data on each instance. This user data is retrieved and +parsed by Spring Cloud AWS. The user data can be defined while starting an EC2 instance with the application. Spring Cloud AWS +expects the format <key>:<value>;<key>:<value> inside the user data so that it can parse the string and extract the key value pairs. +The user data can be configured using either the management console shown below or a CloudFormation template. + + + + + +User data in the management console + + +A CloudFormation template snippet for the configuration of the user data is outlined below: +... +"Resources": { + "ApplicationServerInstance": { + "Type": "AWS::EC2::Instance", + "Properties": { + "ImageId": "ami-6a56b81d", + "UserData": { + "Fn::Base64": "data1:value1;data2:value2" + }, + "InstanceType": "t1.micro", + } +} +... +The user data can be accessed directly in the application context like the instance metadata through placeholders +or expressions. +@Component +public class SecondConfigurationBean { + + @Value("${data1}") + private String firstDataOption; + + @Value("${data2}") + private String secondDataOption; +} +
+
+Using instance tags +User configured properties can also be configured with tags instead of user data. Tags are a global concept in the context +of Amazon Web services and used in different services. Spring Cloud AWS supports instance tags also across different +services. Compared to user data, user tags can be updated during runtime, there is no need to stop and restart +the instance. + +User data can also be used to execute scripts +on instance startup. Therefore it is useful to leverage instance tags for user configuration and user data to execute scripts +on instance startup. + +Instance specific tags can be configured on the instance level through the management console outlined below and +like user data also with a CloudFormation template shown afterwards. + + + + + +Instance data in the management console + + +A CloudFormation template snippet for the configuration of the instance tags is outlined below: +... +"Resources": { + "UserTagAndUserDataInstance": { + "Type": "AWS::EC2::Instance", + "Properties": { + "ImageId": "ami-6a56b81d", + "InstanceType": "t1.micro", + "Tags": [ + { + "Key": "tag1", + "Value": "tagv1" + }, + { + "Key": "tag3", + "Value": "tagv3" + }, + { + "Key": "tag2", + "Value": "tagv2" + }, + { + "Key": "tag4", + "Value": "tagv4" + } + ] + } + } +} +... +To retrieve the instance tags, Spring Cloud AWS has to make authenticated requests and therefore it will need the region +and security configuration before actually resolving the placeholders. Also because the instance tags are not available while starting +the application context, they can only be referenced as expressions and not with placeholders. The context-instance-data +element defines an attribute user-tags-map that will create a map in the application context for the name. This map +can then be queried using expression for other bean definitions. +<beans ...> + <aws-context:context-instance-data user-tags-map="instanceData" /> +</beans> +A java bean might resolve expressions with the @Value annotation. +public class SimpleConfigurationBean { + + @Value("#{instanceData.tag1}") + private String value1; + + @Value("#{instanceData.tag2}") + private String value2; + + @Value("#{instanceData.tag3}") + private String value3; + + @Value("#{instanceData.tag4}") + private String value4; +} +
+
+Configuring custom EC2 client +In some circumstances it is necessary to have a custom EC2 client to retrieve the instance information. The +context-instance-data element supports a custom EC2 client with the amazon-ec2 attribute. The next +example shows the use of a custom EC2 client that might have a special configuration in place. +<beans ...> + + <aws-context:context-credentials>....</aws-context:context-credentials> + <aws-context:context-region ... /> + <aws-context:context-instance-data amazon-ec2="myCustomClient"/> + + <bean id="myCustomClient" class="com.amazonaws.services.ec2.AmazonEC2Client"> + ... + </bean> +</beans> +
+
+Injecting the default EC2 client +If there are user tags configured for the instance data (see above) Spring Cloud AWS configures an EC2 client with +the specified region and security credentials. Application developers can inject the EC2 client directly into their code using the @Autowired annotation. +public class ApplicationService { + + private final AmazonEC2 amazonEc2; + + @Autowired + public ApplicationService(AmazonEC2 amazonEc2) { + this.amazonEc2 = amazonEc2; + } +} +
+
+
+ +Managing cloud environments +Managing environments manually with the management console does not scale and can become error-prone with the increasing +complexity of the infrastructure. Amazon Web services offers a CloudFormation +service that allows to define stack configuration templates and bootstrap the whole infrastructure with the services. +In order to allow multiple stacks in parallel, each resource in the stack receives a unique physical name that contains +some arbitrary generated name. In order to interact with the stack resources in a unified way Spring Cloud AWS allows +developers to work with logical names instead of the random physical ones. +The next graphics shows a typical stack configuration. + + + + + +CloudFormation overview + + +The Template File describes all stack resources with their logical name. The CloudFormation service parses the stack +template file and creates all resources with their physical name. The application can use all the stack configured resources +with the logical name defined in the template. Spring Cloud AWS resolves all logical names into the respective +physical name for the application developer. +
+Automatic CloudFormation configuration +If the application runs inside a stack (because the underlying EC2 instance has been bootstrapped within the stack), then +Spring Cloud AWS will automatically detect the stack and resolve all resources from the stack. Application developers +can use all the logical names from the stack template to interact with the services. In the example below, the database +resource is configured using a CloudFormation template, defining a logical name for the database instance. +"applicationDatabase": { + "Type": "AWS::RDS::DBInstance", + "Properties": { + "AllocatedStorage": "5", + "DBInstanceClass": "db.t1.micro", + "DBName": "test" + ... + ] + } +} +The datasource is then created and will receive a physical name (e.g. ir142c39k6o5irj) as the database service name. Application +developers can still use the logical name (in this case applicationDatabase) to interact with the database. The example +below shows the stack configuration which is defined by the element aws-context:stack-configuration and resolves automatically +the particular stack. The data-source element uses the logical name for the db-instance-identifier attribute to work with +the database. +<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:aws-context="http://www.springframework.org/schema/cloud/aws/context" + xmlns="http://www.springframework.org/schema/beans" + xsi:schemaLocation="http://www.springframework.org/schema/cloud/aws/context + http://www.springframework.org/schema/cloud/aws/context/spring-cloud-aws-context.xsd"> + + <aws-context:context-credentials> + ... + </aws-context:context-credentials> + + <aws-context:context-region .. /> + + <aws-context:stack-configuration/> + + <jdbc:data-source db-instance-identifier="applicationDatabase" ... /> +</beans> + +Further detailed information on the Amazon RDS configuration and setup can be found in the respective chapter in this +documentation. + +
+
+Manual CloudFormation configuration +If the application is not running inside a stack configured EC2 instance, then the stack configuration must be configured +manually. The configuration consists of an additional element attribute stack-name that will be used to resolve all the +respective stack configuration information at runtime. +<beans ....> + ... + <aws-context:stack-configuration stack-name="myStackName" /> + ... +</beans> +
+
+CloudFormation configuration with Java config classes +Spring Cloud AWS also supports the configuration of the CloudFormation support within Java classes avoiding the use of + XML inside the application configuration. Spring Cloud AWS provides the annotation + og.springframework.cloud.aws.context.config.annotation.EnableStackConfiguration that allows the automatic and manual + stack configuration. The next example shows a configuration class that configures the CloudFormation support with an + explicit stack name (here manualStackName). +@Configuration +@EnableStackConfiguration(stackName = "manualStackName") +class ApplicationConfiguration { +} + +Do not define the stackName attribute if an automatic stack name should be enabled. + +
+
+CloudFormation configuration in Spring Boot +Spring Cloud AWS also supports the configuration of the CloudFormation support within the Spring Boot configuration. The +manual and automatic stack configuration can be defined with properties that are described in the table below. + + + + + + + +property +example +description + + + + +cloud.aws.stack.name +myStackName +The name of the manually configured stack name that will be used to retrieve the resources. + + +cloud.aws.stack.auto +true +Enables the automatic stack name detection for the application. + + + + +
+
+Manual name resolution +Spring Cloud AWS uses the CloudFormation stack to resolve all resources internally using the logical names. In some circumstances +it might be needed to resolve the physical name inside the application code. Spring Cloud AWS provides a pre-configured +service to resolve the physical stack name based on the logical name. The sample shows a manual stack resource resolution. +@Service +public class ApplicationService { + + private final ResourceIdResolver resourceIdResolver; + + @Autowired + public ApplicationService(ResourceIdResolver resourceIdResolver) { + this.resourceIdResolver = resourceIdResolver; + } + + public void handleApplicationLogic() { + String physicalBucketName = + this.resourceIdResolver.resolveToPhysicalResourceId("someLogicalName"); + } +} +
+
+Stack Tags +Like for the Amazon EC2 instances, CloudFormation also provides stack specific tags that can be used to +configure stack specific configuration information and receive them inside the application. This can for example be a +stage specific configuration property (like DEV, INT, PRD). +<beans ....> + ... + <aws-context:stack-configuration user-tags-map="stackTags"/> + ... +</beans> +The application can then access the stack tags with an expression like #{stackTags.key1}. +
+
+Using custom CloudFormation client +Like for the EC2 configuration setup, the aws-context:stack-configuration element supports a custom CloudFormation client +with a special setup. The client itself can be configured using the amazon-cloud-formation attribute as shown in the example: +<beans> + <aws-context:stack-configuration amazon-cloud-formation=""/> + + <bean class="com.amazonaws.services.cloudformation.AmazonCloudFormationClient"> + </bean> +</beans> +
+
+ +Messaging +Spring Cloud AWS provides Amazon SQS and Amazon SNS integration +that simplifies the publication and consumption of messages over SQS or SNS. While SQS fully relies on the messaging API +introduced with Spring 4.0, SNS only partially implements it as the receiving part must be handled differently for +push notifications. +
+Configuring messaging +Before using and configuring the messaging support, the application has to include the respective module dependency +into the Maven configuration. Spring Cloud AWS Messaging support comes as a separate module to allow the modularized use +of the modules. +
+Maven dependency configuration +The Spring Cloud AWS messaging module comes as a standalone module and can be imported with the following dependency declaration: +<dependency> + <groupId>org.springframework.cloud</groupId> + <artifactId>spring-cloud-aws-messaging</artifactId> + <version>{spring-cloud-version}</version> +</dependency> +
+
+
+SQS support +Amazon SQS is a hosted messaging service on the Amazon Web Service platform that provides point-to-point communication +with queues. Compared to JMS or other message services Amazon SQS has several features and limitations that should be +taken into consideration. + + +Amazon SQS allows only String payloads, so any Object must be transformed into a String representation. +Spring Cloud AWS has dedicated support to transfer Java objects with Amazon SQS messages by converting them to JSON. + + +Amazon SQS has no transaction support, so messages might therefore be retrieved twice. Application have to be written in +an idempotent way so that they can receive a message twice. + + +Amazon SQS has a maximum message size of 256kb per message, so bigger messages will fail to be sent. + + +
+Sending a message +The QueueMessagingTemplate contains many convenience methods to send a message. There are send methods that specify the +destination using a QueueMessageChannel object and those that specify the destination using a string which is going to +be resolved against the SQS API. The send method that takes no destination argument uses the default destination. +import com.amazonaws.services.sqs.AmazonSQS; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cloud.aws.messaging.core.QueueMessagingTemplate; +import org.springframework.messaging.support.MessageBuilder; + +public class SqsQueueSender { + + private final QueueMessagingTemplate queueMessagingTemplate; + + @Autowired + public SqsQueueSender(AmazonSQS amazonSqs) { + this.queueMessagingTemplate = new QueueMessagingTemplate(amazonSqs); + } + + public void send(String message) { + this.queueMessagingTemplate.send("physicalQueueName", MessageBuilder.withPayload(message).build()); + } +} +This example uses the MessageBuilder class to create a message with a string payload. The QueueMessagingTemplate is +constructed by passing a reference to the AmazonSQS client. The destination in the send method is a string value that +must match the queue name defined on AWS. This value will be resolved at runtime by the Amazon SQS client. Optionally +a ResourceIdResolver implementation can be passed to the QueueMessagingTemplate constructor to resolve resources by +logical name when running inside a CloudFormation stack (see for more information about +resource name resolution). +With the messaging namespace a QueueMessagingTemplate can be defined in an XML configuration file. +<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:aws-context="http://www.springframework.org/schema/cloud/aws/context" + xmlns:aws-messaging="http://www.springframework.org/schema/cloud/aws/messaging" + xmlns="http://www.springframework.org/schema/beans" + xsi:schemaLocation="http://www.springframework.org/schema/beans + https://www.springframework.org/schema/beans/spring-beans.xsd + http://www.springframework.org/schema/cloud/aws/context + http://www.springframework.org/schema/cloud/aws/context/spring-cloud-aws-context.xsd + http://www.springframework.org/schema/cloud/aws/messaging + http://www.springframework.org/schema/cloud/aws/messaging/spring-cloud-aws-messaging"> + + <aws-context:context-credentials> + <aws-context:instance-profile-credentials /> + </aws-context:context-credentials> + + <aws-messaging:queue-messaging-template id="queueMessagingTemplate" /> + +</beans> +In this example the messaging namespace handler constructs a new QueueMessagingTemplate. The AmazonSQS client +is automatically created and passed to the template’s constructor based on the provided credentials. If the +application runs inside a configured CloudFormation stack a ResourceIdResolver is passed to the constructor (see + for more information about resource name resolution). +
+Using message converters +In order to facilitate the sending of domain model objects, the QueueMessagingTemplate has various send methods that +take a Java object as an argument for a message’s data content. The overloaded methods convertAndSend() and +receiveAndConvert() in QueueMessagingTemplate delegate the conversion process to an instance of the MessageConverter +interface. This interface defines a simple contract to convert between Java objects and SQS messages. The default +implementation SimpleMessageConverter simply unwraps the message payload as long as it matches the target type. By +using the converter, you and your application code can focus on the business object that is being sent or received via +SQS and not be concerned with the details of how it is represented as an SQS message. + +As SQS is only able to send String payloads the default converter SimpleMessageConverter should only be used +to send String payloads. For more complex objects a custom converter should be used like the one created by the +messaging namespace handler. + +It is recommended to use the XML messaging namespace to create QueueMessagingTemplate as it will set a more +sophisticated MessageConverter that converts objects into JSON when Jackson is on the classpath. +<aws-messaging:queue-messaging-template id="queueMessagingTemplate" /> +this.queueMessagingTemplate.convertAndSend("queueName", new Person("John, "Doe")); +In this example a QueueMessagingTemplate is created using the messaging namespace. The convertAndSend method +converts the payload Person using the configured MessageConverter and sends the message. +
+
+
+Receiving a message +There are two ways for receiving SQS messages, either use the receive methods of the QueueMessagingTemplate or with +annotation-driven listener endpoints. The latter is by far the more convenient way to receive messages. +Person person = this.queueMessagingTemplate.receiveAndConvert("queueName", Person.class); +In this example the QueueMessagingTemplate will get one message from the SQS queue and convert it to the target class +passed as argument. +
+
+Annotation-driven listener endpoints +Annotation-driven listener endpoints are the easiest way for listening on SQS messages. Simply annotate methods with +MessageMapping and the QueueMessageHandler will route the messages to the annotated methods. +<aws-messaging:annotation-driven-queue-listener /> +@SqsListener("queueName") +public void queueListener(Person person) { + // ... +} +In this example a queue listener container is started that polls the SQS queueName passed to the MessageMapping +annotation. The incoming messages are converted to the target type and then the annotated method queueListener is invoked. +In addition to the payload, headers can be injected in the listener methods with the @Header or @Headers +annotations. @Header is used to inject a specific header value while @Headers injects a Map<String, String> +containing all headers. + +It is recommended to use the XML messaging namespace to create QueueMessagingTemplate as it will set a more +sophisticated MessageConverter that converts objects into JSON when Jackson is on the classpath. + +<aws-messaging:queue-messaging-template id="queueMessagingTemplate" /> +this.queueMessagingTemplate.convertAndSend("queueName", new Person("John, "Doe")); +In this example a QueueMessagingTemplate is created using the messaging namespace. The convertAndSend method +converts the payload Person using the configured MessageConverter and sends the message. +Only the standard +message attributes sent with an SQS message are supported. Custom attributes are currently not supported. +In addition to the provided argument resolvers, custom ones can be registered on the +aws-messaging:annotation-driven-queue-listener element using the aws-messaging:argument-resolvers attribute (see example below). +<aws-messaging:annotation-driven-queue-listener> + <aws-messaging:argument-resolvers> + <bean class="org.custom.CustomArgumentResolver" /> + </aws-messaging:argument-resolvers> +</aws-messaging:annotation-driven-queue-listener> +By default the SimpleMessageListenerContainer creates a ThreadPoolTaskExecutor with computed values for the core and +max pool sizes. The core pool size is set to twice the number of queues and the max pool size is obtained by multiplying +the number of queues by the value of the maxNumberOfMessages field. If these default values do not meet the need of +the application, a custom task executor can be set with the task-executor attribute (see example below). +<aws-messaging:annotation-driven-queue-listener task-executor="simpleTaskExecutor" /> +
+Message reply +Message listener methods can be annotated with @SendTo to send their return value to another channel. The +SendToHandlerMethodReturnValueHandler uses the defined messaging template set on the +aws-messaging:annotation-driven-queue-listener element to send the return value. The messaging template must implement +the DestinationResolvingMessageSendingOperations interface. +<aws-messaging:annotation-driven-queue-listener send-to-message-template="queueMessagingTemplate"/> +@SqsListener("treeQueue") +@SendTo("leafsQueue") +public List<Leaf> extractLeafs(Tree tree) { + // ... +} +In this example the extractLeafs method will receive messages coming from the treeQueue and then return a +List of Leafs which is going to be sent to the leafsQueue. Note that on the +aws-messaging:annotation-driven-queue-listener XML element there is an attribute send-to-message-template +that specifies QueueMessagingTemplate as the messaging template to be used to send the return value of the message +listener method. +
+
+
+The SimpleMessageListenerContainerFactory +The SimpleMessageListenerContainer can also be configured with Java by creating a bean of type SimpleMessageListenerContainerFactory. +@Bean +public SimpleMessageListenerContainerFactory simpleMessageListenerContainerFactory(AmazonSQSAsync amazonSqs) { + SimpleMessageListenerContainerFactory factory = new SimpleMessageListenerContainerFactory(); + factory.setAmazonSqs(amazonSqs); + factory.setAutoStartup(false); + factory.setMaxNumberOfMessages(5); + // ... + + return factory; +} +
+
+Consuming AWS Event messages with Amazon SQS +It is also possible to receive AWS generated event messages with the SQS message listeners. Because +AWS messages does not contain the mime-type header, the Jackson message converter has to be configured +with the strictContentTypeMatch property false to also parse message without the proper mime type. +The next code shows the configuration of the message converter using the QueueMessageHandlerFactory +and re-configuring the MappingJackson2MessageConverter +@Bean +public QueueMessageHandlerFactory queueMessageHandlerFactory() { + QueueMessageHandlerFactory factory = new QueueMessageHandlerFactory(); + MappingJackson2MessageConverter messageConverter = new MappingJackson2MessageConverter(); + + //set strict content type match to false + messageConverter.setStrictContentTypeMatch(false); + factory.setArgumentResolvers(Collections.<HandlerMethodArgumentResolver>singletonList(new PayloadArgumentResolver(messageConverter))); + return factory; +} +With the configuration above, it is possible to receive event notification for S3 buckets (and also other + event notifications like elastic transcoder messages) inside @SqsListener annotated methods s shown below. +@SqsListener("testQueue") +public void receive(S3EventNotification s3EventNotificationRecord) { + S3EventNotification.S3Entity s3Entity = s3EventNotificationRecord.getRecords().get(0).getS3(); +} +
+
+
+SNS support +Amazon SNS is a publish-subscribe messaging system that allows clients to publish notification to a particular topic. Other +interested clients may subscribe using different protocols like HTTP/HTTPS, e-mail or an Amazon SQS queue to receive the messages. +The next graphic shows a typical example of an Amazon SNS architecture. + + + + + +SNS Overview + + +Spring Cloud AWS supports Amazon SNS by providing support to send notifications with a NotificationMessagingTemplate and +to receive notifications with the HTTP/HTTPS endpoint using the Spring Web MVC @Controller based programming model. Amazon +SQS based subscriptions can be used with the annotation-driven message support that is provided by the Spring Cloud AWS messaging module. +
+Sending a message +The NotificationMessagingTemplate contains two convenience methods to send a notification. The first one specifies the +destination using a String which is going to be resolved against the SNS API. The second one takes no destination +argument and uses the default destination. All the usual send methods that are available on the MessageSendingOperations +are implemented but are less convenient to send notifications because the subject must be passed as header. + +Currently only String payloads can be sent using the NotificationMessagingTemplate as this is the expected +type by the SNS API. + +import com.amazonaws.services.sns.AmazonSNS; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cloud.aws.messaging.core.NotificationMessagingTemplate; + +public class SnsNotificationSender { + + private final NotificationMessagingTemplate notificationMessagingTemplate; + + @Autowired + public SnsNotificationSender(AmazonSNS amazonSns) { + this.notificationMessagingTemplate = new NotificationMessagingTemplate(amazonSns); + } + + public void send(String subject, String message) { + this.notificationMessagingTemplate.sendNotification("physicalTopicName", message, subject); + } +} +This example constructs a new NotificationMessagingTemplate by passing an AmazonSNS client as argument. In the send +method the convenience sendNotification method is used to send a message with subject to an SNS topic. The +destination in the sendNotification method is a string value that must match the topic name defined on AWS. This value +is resolved at runtime by the Amazon SNS client. Optionally a ResourceIdResolver implementation can be passed to the +NotificationMessagingTemplate constructor to resolve resources by logical name when running inside a CloudFormation stack. +(See for more information about resource name resolution.) +It is recommended to use the XML messaging namespace to create NotificationMessagingTemplate as it will automatically +configure the SNS client to setup the default converter. +<aws-messaging:notification-messaging-template id="notificationMessagingTemplate" /> +
+
+Annotation-driven HTTP notification endpoint +SNS supports multiple endpoint types (SQS, Email, HTTP, HTTPS), Spring Cloud AWS provides support for HTTP(S) endpoints. +SNS sends three type of requests to an HTTP topic listener endpoint, for each of them annotations are provided: + + +Subscription request → @NotificationSubscriptionMapping + + +Notification request → @NotificationMessageMapping + + +Unsubscription request → @NotificationUnsubscribeMapping + + +HTTP endpoints are based on Spring MVC controllers. Spring Cloud AWS added some custom argument resolvers to extract +the message and subject out of the notification requests. +@Controller +@RequestMapping("/topicName") +public class NotificationTestController { + + @NotificationSubscriptionMapping + public void handleSubscriptionMessage(NotificationStatus status) throws IOException { + //We subscribe to start receive the message + status.confirmSubscription(); + } + + @NotificationMessageMapping + public void handleNotificationMessage(@NotificationSubject String subject, @NotificationMessage String message) { + // ... + } + + @NotificationUnsubscribeConfirmationMapping + public void handleUnsubscribeMessage(NotificationStatus status) { + //e.g. the client has been unsubscribed and we want to "re-subscribe" + status.confirmSubscription(); + } +} + +Currently it is not possible to define the mapping URL on the method level therefore the RequestMapping must +be done at type level and must contain the full path of the endpoint. + +This example creates a new Spring MVC controller with three methods to handle the three requests listed above. In order +to resolve the arguments of the handleNotificationMessage methods a custom argument resolver must be registered. The +XML configuration is listed below. +<mvc:annotation-driven> + <mvc:argument-resolvers> + <ref bean="notificationResolver" /> + </mvc:argument-resolvers> +</mvc:annotation-driven> + +<aws-messaging:notification-argument-resolver id="notificationResolver" /> +The aws-messaging:notification-argument-resolver element registers three argument resolvers: +NotificationStatusHandlerMethodArgumentResolver, NotificationMessageHandlerMethodArgumentResolver, +and NotificationSubjectHandlerMethodArgumentResolver. +
+
+
+Using CloudFormation +Amazon SQS queues and SNS topics can be configured within a stack and then be used by applications. Spring Cloud AWS +also supports the lookup of stack-configured queues and topics by their logical name with the resolution to the physical +name. The example below shows an SNS topic and SQS queue configuration inside a CloudFormation template. +"LogicalQueueName": { + "Type": "AWS::SQS::Queue", + "Properties": { + } +}, +"LogicalTopicName": { + "Type": "AWS::SNS::Topic", + "Properties": { + } +} +The logical names LogicalQueueName and LogicalTopicName can then be used in the configuration and in the application +as shown below: +<aws-messaging:queue-messaging-template default-destination="LogicalQueueName" /> + +<aws-messaging:notification-messaging-template default-destination="LogicalTopicName" /> +@SqsListener("LogicalQueueName") +public void receiveQueueMessages(Person person) { + // Logical names can also be used with messaging templates + this.notificationMessagingTemplate.sendNotification("anotherLogicalTopicName", "Message", "Subject"); +} +When using the logical names like in the example above, the stack can be created on different environments without any +configuration or code changes inside the application. +
+
+ +Caching +Caching in a cloud environment is useful for applications to reduce the latency and to save database round trips. +Reducing database round trips can significantly reduce the requirements for the database instance. The Spring Framework +provides, since version 3.1, a unified Cache abstraction to allow declarative caching in applications analogous to the +declarative transactions. +Spring Cloud AWS integrates the Amazon ElastiCache service into the Spring unified +caching abstraction providing a cache manager based on the memcached and Redis protocols. The caching support for Spring +Cloud AWS provides its own memcached implementation for ElastiCache and uses +Spring Data Redis for Redis caches. +
+Configuring dependencies for Redis caches +Spring Cloud AWS delivers its own implementation of a memcached cache, therefore no other dependencies are needed. For Redis +Spring Cloud AWS relies on Spring Data Redis to support caching and also to allow multiple Redis drivers to be used. Spring +Cloud AWS supports all Redis drivers that Spring Data Redis supports (currently Jedis, JRedis, SRP and Lettuce) with Jedis + being used internally for testing against ElastiCache. A dependency definition for Redis with Jedis is shown in the example +<dependencies> + <dependency> + <groupId>org.springframework.data</groupId> + <artifactId>spring-data-redis</artifactId> + <version>${spring-data-redis.version}</version> + </dependency> + <dependency> + <groupId>redis.clients</groupId> + <artifactId>jedis</artifactId> + <version>2.6.1</version> + </dependency> +</dependencies> +Spring Cloud AWS will automatically detect the Redis driver and will use one of them automatically. +
+
+Configuring caching with XML +The cache support for Spring Cloud AWS resides in the context module and can therefore be used if the context module +is already imported in the project. The cache integration provides its own namespace to configure cache clusters that are +hosted in the Amazon ElastiCache service. The next example contains a configuration for the cache cluster and the Spring +configuration to enable declarative, annotation-based caching. +<beans xmlns:aws-cache="http://www.springframework.org/schema/cloud/aws/cache" + xmlns:cache="http://www.springframework.org/schema/cache" + xmlns="http://www.springframework.org/schema/beans" + xsi:schemaLocation="http://www.springframework.org/schema/cloud/aws/cache + http://www.springframework.org/schema/cloud/aws/cache/spring-cloud-aws-cache.xsd + http://www.springframework.org/schema/cache + https://www.springframework.org/schema/cache/spring-cache.xsd"> + + <aws-context:context-credentials> + ... + </aws-context:context-credentials> + + <aws-cache:cache-manager> + <aws-cache:cache-cluster name="CacheCluster" /> + </aws-cache:cache-manager> + + <cache:annotation-driven /> +</beans> +The configuration above configures a cache-manager with one cache with the name CacheCluster that represents an +ElasticCache cluster. +
+Mixing caches +Applications may have the need for multiple caches that are maintained by one central cache cluster. The Spring Cloud +AWS caching support allows to define multiple caches inside one cache manager and also to use externally defined caches +inside the cache manager. +The example below demonstrates a configuration example that contains a pre-configured cache with a cache-ref element +(which might be a local cache) and a cache-cluster configuration for ElastiCache cache clusters. +<beans ...> + <aws-cache:cache-manager id="cacheManager"> + <aws-cache:cache-ref ref="memcached" /> + <aws-cache:cache-cluster name="SimpleCache"/> + </aws-cache:cache-manager> +</beans> +
+
+Defining expiration +The Spring cache demarcation does not support expiry time configuration and leaves it up to the cache implementation +to support an expiry time. The Spring Cloud AWS cache configuration supports the expiry time setting per cache. The +expiry time will be passed to the memcached service. +The cache-cluster element accepts an expiration attribute that defines the expiration time in seconds. +No configured values implies that there is an infinite expiration time. +<beans> + <aws-cache:cache-manager> + <aws-cache:cache-cluster expiration="10000" name="CacheCluster" /> + </aws-cache:cache-manager> +</beans> +
+
+
+Configuring caching using Java configuration +Spring Cloud AWS also support the cache configuration with Java configuration classes. On any Configuration class, +the caching can be configured using the org.springframework.cloud.aws.cache.config.annotation.EnableElastiCache +annotation provided by Spring Cloud AWS. The next example shows a configuration of two cache clusters. +@EnableElastiCache({@CacheClusterConfig(name = "firstCache"), @CacheClusterConfig(name = "secondCache")}) +public class ApplicationConfiguration { +} + +If you leave the value attribute empty, then all the caches inside your CloudFormation stack (if available) +will be configured automatically. + +
+Configuring expiry time for caches +The Java configuration also allows to configure the expiry time for the caches. This can be done for all +caches using the defaultExpiration attribute as shown in the example below. +@EnableElastiCache(defaultExpiration = 23) +public class ApplicationConfiguration { +} +The expiration can be defined on a cache level using the @CacheClusterConfig annotations expiration attribute as shown below (using seconds as +the value). +@EnableElastiCache({@CacheClusterConfig(name = "firstCache", expiration = 23), @CacheClusterConfig(name = "secondCache", expiration = 42)}) +public class ApplicationConfiguration { +} +
+
+
+Configuring caching in Spring Boot +The caches will automatically be configured in Spring Boot without any explicit configuration property. +
+
+Using caching +Based on the configuration of the cache, developers can annotate their methods to use the caching for method return values. +The next example contains a caching declaration for a service for which the return values should be cached +@Service +public class ExpensiveService { + + @Cacheable("CacheCluster") + public String calculateExpensiveValue(String key) { + ... + } +} +
+
+Memcached client implementation +There are different memcached client implementations available for Java, the most prominent ones are +Spymemcached and XMemcached. +Amazon AWS supports a dynamic configuration and delivers an enhanced memcached client based on Spymemcached to support the +auto-discovery of new nodes based on +a central configuration endpoint. +Spring Cloud AWS relies on the Amazon ElastiCache Client implementation and therefore has a dependency on that. +
+
+Using CloudFormation +Amazon ElastiCache clusters can also be configured within a stack and then be used by applications. Spring Cloud AWS +also supports the lookup of stack-configured cache clusters by their logical name with the resolution to the physical +name. The example below shows a cache cluster configuration inside a CloudFormation template. +"CacheCluster": { + "Type": "AWS::ElastiCache::CacheCluster", + "Properties": { + "AutoMinorVersionUpgrade": "true", + "Engine": "memcached", + "CacheNodeType": "cache.t2.micro", + "CacheSubnetGroupName" : "sample", + "NumCacheNodes": "1", + "VpcSecurityGroupIds": ["sample1"] + } +} +The cache cluster can then be used with the name CacheCluster inside the application configuration as shown below: +<beans...> + <aws-cache:cache-manager> + <aws-cache:cache-cluster name="CacheCluster" expiration="15"/> + </aws-cache:cache-manager> +<beans> +With the configuration above the application can be deployed with multiple stacks on different environments +without any configuration change inside the application. +
+
+ +Data Access with JDBC +Spring has a broad support of data access technologies built on top of JDBC like JdbcTemplate and dedicated ORM (JPA, +Hibernate support). Spring Cloud AWS enables application developers to re-use their JDBC technology of choice and access the +Amazon Relational Database Service with a declarative configuration. The main support provided by Spring +Cloud AWS for JDBC data access are: + + +Automatic data source configuration and setup based on the Amazon RDS database instance. + + +Automatic read-replica detection and configuration for Amazon RDS database instances. + + +Retry-support to handle exception during Multi-AZ failover inside the data center. + + +
+Configuring data source +Before using and configuring the database support, the application has to include the respective module dependency +into its Maven configuration. Spring Cloud AWS JDBC support comes as a separate module to allow the modularized use of the +modules. +
+Maven dependency configuration +The Spring Cloud AWS JDBC module comes as a standalone module and can be imported with the following dependency declaration. +<dependency> + <groupId>org.springframework.cloud</groupId> + <artifactId>spring-cloud-aws-jdbc</artifactId> + <version>{spring-cloud-version}</version> +</dependency> +
+
+Basic data source configuration +The data source configuration requires the security and region configuration as a minimum allowing Spring Cloud AWS to retrieve +the database metadata information with the Amazon RDS service. Spring Cloud AWS provides an additional jdbc specific namespace +to configure the data source with the minimum attributes as shown in the example: +<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:jdbc="http://www.springframework.org/schema/cloud/aws/jdbc" + xmlns="http://www.springframework.org/schema/beans" + xsi:schemaLocation="http://www.springframework.org/schema/cloud/aws/jdbc + http://www.springframework.org/schema/cloud/aws/jdbc/spring-cloud-aws-jdbc.xsd"> + + <aws-context:context-credentials> + ... + </aws-context:context-credentials> + + <aws-context:context-region region="..."/> + +<jdbc:data-source + db-instance-identifier="myRdsDatabase" + password="${rdsPassword}"> +</jdbc:data-source> +</beans> +The minimum configuration parameters are a unique id for the data source, a valid db-instance-identifier attribute +that points to a valid Amazon RDS database instance. The master user password for the master user. If there is another +user to be used (which is recommended) then the username attribute can be set. +With this configuration Spring Cloud AWS fetches all the necessary metadata and creates a +Tomcat JDBC pool with the default properties. The data source +can be later injected into any Spring Bean as shown below: +@Service +public class SimpleDatabaseService implements DatabaseService { + + private final JdbcTemplate jdbcTemplate; + + @Autowired + public SimpleDatabaseService(DataSource dataSource) { + this.jdbcTemplate = new JdbcTemplate(dataSource); + } +} +It is possible to qualify the data source injection point with an @Qualifier annotation to allow multiple data source +configurations inside one application context and still use auto-wiring. +
+
+Data source pool configuration +Spring Cloud AWS creates a new Tomcat JDBC pool with the default properties. Often these default properties do not meet the +requirements of the application with regards to pool size and other settings. The data source configuration supports the configuration +of all valid pool properties with a nested XML element. The following example demonstrates the re-configuration of the data source +with custom pool properties. +<beans ..> + + <aws-context:context-credentials> + ... + </aws-context:context-credentials> + + <aws-context:context-region region="..."/> + + <jdbc:data-source + db-instance-identifier="myRdsDatabase" + password="${rdsPassword}"> + <jdbc:pool-attributes initialSize="1" " maxActive="200" minIdle="10" + testOnBorrow="true" validationQuery="SELECT 1" /> + </jdbc:data-source> + +</beans> +A full list of all configuration attributes with their value is available here. +
+
+
+Configuring data source with Java config +Spring Cloud AWS also supports the configuration of the data source within an @Configuration class. The +org.springframework.cloud.aws.jdbc.config.annotation.EnableRdsInstance annotation can be used to configure one data +source. Multiple ones can be used to configure more then one data source. Each annotation will generate exactly one +data source bean. +The class below shows a data source configuration inside a configuration class +@Configuration +@EnableRdsInstance(dbInstanceIdentifier = "test",password = "secret", readReplicaSupport = true) +public class ApplicationConfiguration { +} + +The configuration attributes are the same in the XML element. The required attributes are also the same +for the XML configuration (the dbInstanceIdentifier and password attribute) + +
+Java based data source pool configuration +It is also possible to override the pool configuration with custom values. Spring Cloud AWS provides a +org.springframework.cloud.aws.jdbc.config.annotation.RdsInstanceConfigurer that creates a +org.springframework.cloud.aws.jdbc.datasource.DataSourceFactory which might contain custom pool attributes. The next +examples shows the implementation of one configurer that overrides the validation query and the initial size. +@Configuration +@EnableRdsInstance(dbInstanceIdentifier = "test",password = "secret") +public class ApplicationConfiguration { + + @Bean + public RdsInstanceConfigurer instanceConfigurer() { + return new RdsInstanceConfigurer() { + @Override + public DataSourceFactory getDataSourceFactory() { + TomcatJdbcDataSourceFactory dataSourceFactory = new TomcatJdbcDataSourceFactory(); + dataSourceFactory.setInitialSize(10); + dataSourceFactory.setValidationQuery("SELECT 1 FROM DUAL"); + return dataSourceFactory; + } + }; + } +} + +This class returns an anonymous class of type org.springframework.cloud.aws.jdbc.config.annotation.RdsInstanceConfigurer, + which might also of course be a standalone class. + +
+
+
+Configuring data source in Spring Boot +The data sources can also be configured using the Spring Boot configuration files. Because of the dynamic number of +data sources inside one application, the Spring Boot properties must be configured for each data source. +A data source configuration consists of the general property name cloud.aws.rds.<instanceName> for the data source identifier +following the sub properties for the particular data source where instanceName is the name of the concrete instance. The table below +outlines all properties for a data source using test as the instance identifier. + + + + + + + +property +example +description + + + + +cloud.aws.rds.test + +The configuration property that configures a data source with the name test + + +cloud.aws.rds.test.password +verySecret +The password for the db instance test + + +cloud.aws.rds.test.username +admin +The username for the db instance test (optional) + + +cloud.aws.rds.test.readReplicaSupport +true +If read-replicas should be used for the data source (see below) + + +cloud.aws.rds.test.databaseName +fooDb +Custom database name if the default one from rds should not be used + + + + +
+
+Read-replica configuration +Amazon RDS allows to use MySQL read-replica +instances to increase the overall throughput of the database by offloading read data access to one or more read-replica +slaves while maintaining the data in one master database. +Spring Cloud AWS supports the use of read-replicas in combination with Spring read-only transactions. If the read-replica +support is enabled, any read-only transaction will be routed to a read-replica instance while using the master database +for write operations. + +Using read-replica instances does not guarantee strict ACID semantics for the database +access and should be used with care. This is due to the fact that the read-replica might be behind and a write might not +be immediately visible to the read transaction. Therefore it is recommended to use read-replica instances only for transactions that read +data which is not changed very often and where outdated data can be handled by the application. + +The read-replica support can be enabled with the read-replica attribute in the datasource configuration. +<beans ..> + <jdbc:data-source db-instance-identifier="RdsSingleMicroInstance" + password="${rdsPassword}" read-replica-support="true"> + + </jdbc:data-source> +</beans> +Spring Cloud AWS will search for any read-replica that is created for the master database and route the read-only transactions +to one of the read-replicas that are available. A business service that uses read-replicas can be implemented like shown +in the example. +@Service +public class SimpleDatabaseService { + + private final JdbcTemplate jdbcTemplate; + + @Autowired + public SimpleDatabaseService(DataSource dataSource) { + this.jdbcTemplate = new JdbcTemplate(dataSource); + } + + @Transactional(readOnly = true) + public Person loadAll() { + // read data on the read replica + } + + @Transactional + public void updatePerson(Person person) { + // write data into database + } +} +
+
+Failover support +Amazon RDS supports a Multi-AZ fail-over if +one availability zone is not available due to an outage or failure of the primary instance. The replication is synchronous +(compared to the read-replicas) and provides continuous service. Spring Cloud AWS supports a Multi-AZ failover with a retry +mechanism to recover transactions that fail during a Multi-AZ failover. + +In most cases it is better to provide direct feedback to a user instead of trying potentially long and frequent retries within +a user interaction. Therefore the fail-over support is primarily useful for batch application or applications where the +responsiveness of a service call is not critical. + +The Spring Cloud AWS JDBC module provides a retry interceptor that can be used to decorate services with an interceptor. +The interceptor will retry the database operation again if there is a temporary error due to a Multi-AZ failover. A Multi-AZ +failover typically lasts only a couple of seconds, therefore a retry of the business transaction will likely succeed. +The interceptor can be configured as a regular bean and then be used by a pointcut expression to decorate the respective +method calls with the interceptor. The interceptor must have a configured database to retrieve the current status (if it +is a temporary fail-over or a permanent error) from the Amazon RDS service. +The configuration for the interceptor can be done with a custom element from the Spring Cloud AWS jdbc namespace and +will be configured like shown: +<beans ..> + <jdbc:retry-interceptor id="myInterceptor" + db-instance-identifier="myRdsDatabase" + max-number-of-retries="10" /> +</beans> +The interceptor itself can be used with any Spring advice configuration to wrap the respective service. A pointcut +for the services shown in the chapter before can be defined as follows: +<beans ..> + <aop:config> + <aop:advisor advice-ref="myInterceptor" pointcut="bean(simpleDatabaseService)" order="1" /> + </aop:config> +</beans> + +It is important that the interceptor is called outside the transaction interceptor to ensure that the whole transaction +will be re-executed. Configuring the interceptor inside the transaction interceptor will lead to a permanent error because +the broken connection will never be refreshed. + +The configuration above in combination with a transaction configuration will produce the following proxy configuration +for the service. + + + + + +Retry interceptor + + +
+
+CloudFormation support +Spring Cloud AWS supports database instances that are configured with CloudFormation. Spring Cloud AWS can use the logical +name inside the database configuration and lookup the concrete database with the generated physical resource name. A database +configuration can be easily configured in CloudFormation with a template definition that might look like the following +example. +"myRdsDatabase": { + "Type": "AWS::RDS::DBInstance", + "Properties": { + "AllocatedStorage": "5", + "DBInstanceClass": "db.t1.micro", + "DBName": "test", + "Engine": "mysql", + "MasterUsername": "admin", + "MasterUserPassword": {"Ref":"RdsPassword"}, + ... + } + }, + "readReplicaDatabase": { + "Type": "AWS::RDS::DBInstance", + "Properties": { + "AllocatedStorage" : "5", + "SourceDBInstanceIdentifier": { + "Ref": "myRdsDatabase" + }, + "DBInstanceClass": "db.t1.micro" + } + } +} +The database can then be configured using the name set in the template. Also, the read-replica can +be enabled to use the configured read-replica database in the application. A configuration to use the configured +database is outlined below: +<beans> + <aws-context:stack-configuration/> + + <jdbc:data-source db-instance-identifier="myRdsDatabase" password="${rdsPassword}" read-replica-support="true"/> +</beans> +
+
+Database tags +Amazon RDS instances can also be configured using RDS database specific tags, allowing users to configure database specific +configuration metadata with the database. Database instance specific tags can be configured using the user-tags-map attribute +on the data-source element. Configure the tags support like in the example below: +<jdbc:data-source + db-instance-identifier="myRdsDatabase" + password="${rdsPassword}" user-tags-map="dbTags" /> +That allows the developer to access the properties in the code using expressions like shown in the class below: +public class SampleService { + + @Value("#{dbTags['aws:cloudformation:aws:cloudformation:stack-name']}") + private String stackName; +} + +The database tag aws:cloudformation:aws:cloudformation:stack-name is a default tag that is created if the +database is configured using CloudFormation. + +
+
+ +Sending mails +Spring has a built-in support to send e-mails based on the Java Mail API +to avoid any static method calls while using the Java Mail API and thus supporting the testability of an application. +Spring Cloud AWS supports the Amazon SES as an implementation of the Spring Mail abstraction. +As a result Spring Cloud AWS users can decide to use the Spring Cloud AWS implementation of the Amazon SES service or +use the standard Java Mail API based implementation that sends e-mails via SMTP to Amazon SES. + +It is preferred to use the Spring Cloud AWS implementation instead of SMTP mainly for performance reasons. +Spring Cloud AWS uses one API call to send a mail message, while the SMTP protocol makes multiple requests (EHLO, MAIL FROM, RCPT TO, DATA, QUIT) +until it sends an e-mail. + +
+Configuring the mail sender +Spring Cloud AWS provides an XML element to configure a Spring org.springframework.mail.MailSender implementation for the +client to be used. The default mail sender works without a Java Mail dependency and is capable of sending messages without +attachments as simple mail messages. A configuration with the necessary elements will look like this: +<beans xmlns:aws-mail="http://www.springframework.org/schema/cloud/aws/mail" + xsi:schemaLocation="http://www.springframework.org/schema/cloud/aws/mail + http://www.springframework.org/schema/cloud/aws/mail/spring-cloud-aws-mail.xsd"> + + <aws-context:context-credentials> + .. + </aws-context:context-credentials> + + <aws-context:context-region region="eu-west-1" /> + + <aws-mail:mail-sender id="testSender" /> + +</beans> +
+
+Sending simple mails +Application developers can inject the MailSender into their application code and directly send simple text based e-mail +messages. The sample below demonstrates the creation of a simple mail message. +public class MailSendingService { + + private MailSender mailSender; + + @Autowired + public MailSendingService(MailSender mailSender) { + this.mailSender = mailSender; + } + + public void sendMailMessage() { + SimpleMailMessage simpleMailMessage = new SimpleMailMessage(); + simpleMailMessage.setFrom("foo@bar.com"); + simpleMailMessage.setTo("bar@baz.com"); + simpleMailMessage.setSubject("test subject"); + simpleMailMessage.setText("test content"); + this.mailSender.send(simpleMailMessage); + } +} +
+
+Sending attachments +Sending attachments with e-mail requires MIME messages to be created and sent. In order to create MIME messages, +the Java Mail dependency is required and has to be included in the classpath. Spring Cloud AWS will detect the +dependency and create a org.springframework.mail.javamail.JavaMailSender implementation that allows to create and +build MIME messages and send them. A dependency configuration for the Java Mail API is the only change in the configuration +which is shown below. +<dependency> + <groupId>javax.mail</groupId> + <artifactId>mailapi</artifactId> + <version>1.4.1</version> + <exclusions> + <!-- exclusion because we are running on Java 1.7 that includes the activation API by default--> + <exclusion> + <artifactId>activation</artifactId> + <groupId>javax.activation</groupId> + </exclusion> + </exclusions> +</dependency> + +Even though there is a dependency to the Java Mail API there is still the Amazon SES API used underneath to send mail +messages. There is no SMTP setup required +on the Amazon AWS side. + +Sending the mail requires the application developer to use the JavaMailSender to send an e-mail as shown in the example +below. +public class MailSendingService { + + private JavaMailSender mailSender; + + @Autowired + public MailSendingService(JavaMailSender mailSender) { + this.mailSender = mailSender; + } + + public void sendMailMessage() { + this.mailSender.send(new MimeMessagePreparator() { + + @Override + public void prepare(MimeMessage mimeMessage) throws Exception { + MimeMessageHelper helper = + new MimeMessageHelper(mimeMessage, true, "UTF-8"); + helper.addTo("foo@bar.com"); + helper.setFrom("bar@baz.com"); + helper.addAttachment("test.txt", ...); + helper.setSubject("test subject with attachment"); + helper.setText("mime body", false); + } + }); + } +} +
+
+Configuring regions +Amazon SES is not available in all regions of the +Amazon Web Services cloud. Therefore an application hosted and operated in a region that does not support the mail +service will produce an error while using the mail service. Therefore the region must be overridden for the mail +sender configuration. The example below shows a typical combination of a region (EU-CENTRAL-1) that does not provide +an SES service where the client is overridden to use a valid region (EU-WEST-1). +<beans ...> + + <aws-context:context-region region="eu-central-1" /> + <aws-mail:mail-sender id="testSender" region="eu-west-1"/> + +</beans> +
+
+Authenticating e-mails +To avoid any spam attacks on the Amazon SES mail service, applications without production access must +verify each +e-mail receiver otherwise the mail sender will throw a com.amazonaws.services.simpleemail.model.MessageRejectedException. +Production access can be requested +and will disable the need for mail address verification. +
+
+ +Resource handling +The Spring Framework provides a org.springframework.core.io.ResourceLoader abstraction to load files from the filesystem, +servlet context and the classpath. Spring Cloud AWS adds support for the Amazon S3 service +to load and write resources with the resource loader and the s3 protocol. +The resource loader is part of the context module, therefore no additional dependencies are necessary to use the resource +handling support. +
+Configuring the resource loader +Spring Cloud AWS does not modify the default resource loader unless it encounters an explicit configuration with an XML namespace element. +The configuration consists of one element for the whole application context that is shown below: +<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:aws-context="http://www.springframework.org/schema/cloud/aws/context" + xsi:schemaLocation="http://www.springframework.org/schema/cloud/aws/context + http://www.springframework.org/schema/cloud/aws/context/spring-cloud-aws-context.xsd"> + + <aws-context:context-credentials> + ... + </aws-context:context-credentials> + + <aws-context:context-resource-loader/> +</beans> +
+
+Downloading files +Downloading files can be done by using the s3 protocol to reference Amazon S3 buckets and objects inside their bucket. The +typical pattern is s3://<bucket>/<object> where bucket is the global and unique bucket name and object is a valid object +name inside the bucket. The object name can be a file in the root folder of a bucket or a nested file within a directory +inside a bucket. +The next example demonstrates the use of the resource loader to load different resources. +public class SimpleResourceLoadingBean { + + @Autowired + private ResourceLoader resourceLoader; + + public void resourceLoadingMethod() throws IOException { + Resource resource = this.resourceLoader.getResource("s3://myBucket/rootFile.log"); + Resource secondResource = this.resourceLoader.getResource("s3://myBucket/rootFolder/subFile"); + + InputStream inputStream = resource.getInputStream(); + //read file + } +} +
+
+Uploading files +Since Spring Framework 3.1 the resource loader can also be used to upload files with the org.springframework.core.io.WritableResource +interface which is a specialization of the org.springframework.core.io.ResourceLoader interface. Clients can upload files +using the WritableResource interface. The next example demonstrates an upload of a resource using the resource loader. +public class SimpleResourceLoadingBean { + + @Autowired + private ResourceLoader resourceLoader; + + public void writeResource() throws IOException { + Resource resource = this.resourceLoader.getResource("s3://myBucket/rootFile.log"); + WritableResource writableResource = (WritableResource) resource; + try (OutputStream outputStream = writableResource.getOutputStream()) { + outputStream.write("test".getBytes()); + } + } +} +
+Uploading multi-part files +Amazon S3 supports multi-part uploads to +increase the general throughput while uploading. Spring Cloud AWS by default only uses one thread to upload the files and +therefore does not provide parallel upload support. Users can configure a custom org.springframework.core.task.TaskExecutor +for the resource loader. The resource loader will queue multiple threads at the same time to use parallel multi-part uploads. +The configuration for a resource loader that uploads with 10 Threads looks like the following +<beans ...> + <aws-context:context-resource-loader task-executor="executor" /> + <task:executor id="executor" pool-size="10" queue-capacity="0" rejection-policy="CALLER_RUNS" /> +</beans> + +Spring Cloud AWS consumes up to 5 MB (at a minimum) of memory per thread. Therefore each parallel thread will incur +a memory footprint of 5 MB in the heap, and a thread size of 10 will consume therefore up to 50 mb of heap space. Spring Cloud +AWS releases the memory as soon as possible. Also, the example above shows that there is no queue-capacity configured, +because queued requests would also consume memory. + +
+
+Uploading with the TransferManager +The Amazon SDK also provides a high-level abstraction that is useful to upload files, also with multiple threads using +the multi-part functionality. A com.amazonaws.services.s3.transfer.TransferManager can be easily created in the application +code and injected with the pre-configured com.amazonaws.services.s3.AmazonS3 client that is already created +with the Spring Cloud AWS resource loader configuration. +This example shows the use of the transferManager within an application to upload files from the hard-drive. +public class SimpleResourceLoadingBean { + + @Autowired + private AmazonS3 amazonS3; + + public void withTransferManager() { + TransferManager transferManager = new TransferManager(this.amazonS3); + transferManager.upload("myBucket","filename",new File("someFile")); + } +} +
+
+
+Searching resources +The Spring resource loader also supports collecting resources based on an Ant-style path specification. Spring Cloud AWS +offers the same support to resolve resources within a bucket and even throughout buckets. The next example shows the resource +resolution by using different patterns. +public class SimpleResourceLoadingBean { + + @Autowired + private ResourcePatternResolver resourcePatternResolver; + + public void resolveAndLoad() throws IOException { + Resource[] allTxtFilesInFolder = this.resourcePatternResolver.getResources("s3://bucket/name/*.txt"); + Resource[] allTxtFilesInBucket = this.resourcePatternResolver.getResources("s3://bucket/**/*.txt"); + Resource[] allTxtFilesGlobally = this.resourcePatternResolver.getResources("s3://**/*.txt"); + } +} + +Resolving resources throughout all buckets can be very time consuming depending on the number of buckets a user owns. + +
+
+Using CloudFormation +CloudFormation also allows to create buckets during stack creation. These buckets will typically have a generated name +that must be used as the bucket name. In order to allow application developers to define static names inside their +configuration, Spring Cloud AWS provides support to resolve the generated bucket names. +Application developers can use the org.springframework.cloud.aws.core.env.ResourceIdResolver interface to resolve the +physical names that are generated based on the logical names. +The next example shows a bucket definition inside a CloudFormation stack template. The bucket will be created with a name +like integrationteststack-sampleBucket-23qysofs62tc2 +{ + "Resources": { + "sampleBucket": { + "Type": "AWS::S3::Bucket" + } + } +} +Application developers can resolve that name and use it to load resources as shown in the next example below. +public class SimpleResourceLoadingBean { + + private final ResourceLoader loader; + private final ResourceIdResolver idResolver; + + @Autowired + public SimpleResourceLoadingBean(ResourceLoader loader, ResourceIdResolver idResolver) { + this.loader = loader; + this.idResolver = idResolver; + } + + public void resolveAndLoad() { + String sampleBucketName = this.idResolver. + resolveToPhysicalResourceId("sampleBucket"); + Resource resource = this.loader. + getResource("s3://" + sampleBucketName + "/test"); + } +} +
+
+
\ No newline at end of file

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