diff --git a/css/highlight.css b/css/highlight.css new file mode 100644 index 00000000..ffefef72 --- /dev/null +++ b/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/css/manual-multipage.css b/css/manual-multipage.css new file mode 100644 index 00000000..0c484531 --- /dev/null +++ b/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/css/manual-singlepage.css b/css/manual-singlepage.css new file mode 100644 index 00000000..4a7fd140 --- /dev/null +++ b/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/css/manual.css b/css/manual.css new file mode 100644 index 00000000..0ecbe2e8 --- /dev/null +++ b/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/docs/target/antrun/build-main.xml b/docs/target/antrun/build-main.xml new file mode 100644 index 00000000..e4fba30c --- /dev/null +++ b/docs/target/antrun/build-main.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/target/build-docs/META-INF/MANIFEST.MF b/docs/target/build-docs/META-INF/MANIFEST.MF new file mode 100644 index 00000000..ee3b8a70 --- /dev/null +++ b/docs/target/build-docs/META-INF/MANIFEST.MF @@ -0,0 +1,6 @@ +Manifest-Version: 1.0 +Archiver-Version: Plexus Archiver +Built-By: jenkins +Created-By: Apache Maven 3.5.0 +Build-Jdk: 1.8.0_144 + diff --git a/docs/target/build-docs/asciidoc/README.adoc b/docs/target/build-docs/asciidoc/README.adoc new file mode 100644 index 00000000..27561297 --- /dev/null +++ b/docs/target/build-docs/asciidoc/README.adoc @@ -0,0 +1,86 @@ +image:https://circleci.com/gh/spring-cloud/spring-cloud-build.svg?style=svg[link="https://travis-ci.org/spring-cloud/spring-cloud-build"] + +Spring Cloud Build is a common utility project for Spring Cloud +to use for plugin and dependency management. + +== Building and Deploying + +To install locally: + +---- + +$ mvn install -s .settings.xml +---- + +and to deploy snapshots to repo.spring.io: + +---- +$ mvn deploy -DaltSnapshotDeploymentRepository=repo.spring.io::default::https://repo.spring.io/libs-snapshot-local +---- + +for a RELEASE build use + +---- +$ mvn deploy -DaltReleaseDeploymentRepository=repo.spring.io::default::https://repo.spring.io/libs-release-local +---- + +and for jcenter use + +---- +$ mvn deploy -DaltReleaseDeploymentRepository=bintray::default::https://api.bintray.com/maven/spring/jars/org.springframework.cloud:build +---- + +and for Maven Central use + +---- +$ mvn deploy -P central -DaltReleaseDeploymentRepository=sonatype-nexus-staging::default::https://oss.sonatype.org/service/local/staging/deploy/maven2 +---- + +(the "central" profile is available for all projects in Spring Cloud and it sets up the gpg jar signing, and the repository has to be specified separately for this project because it is a parent of the starter parent which users in turn have as their own parent). + +== Contributing + +include::https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/docs/src/main/asciidoc/contributing.adoc[] + +== Reusing the documentation + +Spring Cloud Build publishes its `spring-cloud-build-docs` module that contains +helpful scripts (e.g. README generation ruby script) and css, xslt and images +for the Spring Cloud documentation. If you want to follow the same convention +approach of generating documentation just add these plugins to your `docs` module + +[source,xml] +---- + + + docs + + + + org.apache.maven.plugins + maven-dependency-plugin <1> + + + org.asciidoctor + asciidoctor-maven-plugin <2> + + + com.agilejava.docbkx + docbkx-maven-plugin <3> + + + org.apache.maven.plugins + maven-antrun-plugin <4> + false + + + + + +---- +<1> This plugin downloads and unpacks the resources of the `spring-cloud-build-docs` module +<2> This plugin is required to parse the Asciidoctor documentation +<3> This plugin converts the Asciidoctor documentation into single and multi page docs +<4> This plugin is required to copy resources into proper final destinations and to generate main README.adoc + +IMPORTANT: The order of plugin declaration is important! \ No newline at end of file diff --git a/docs/target/build-docs/asciidoc/building-base.adoc b/docs/target/build-docs/asciidoc/building-base.adoc new file mode 100644 index 00000000..4f7c41f6 --- /dev/null +++ b/docs/target/build-docs/asciidoc/building-base.adoc @@ -0,0 +1,86 @@ +=== Basic Compile and Test + +To build the source you will need to install JDK {jdkversion}. + +Spring Cloud uses Maven for most build-related activities, and you +should be able to get off the ground quite quickly by cloning the +project you are interested in and typing + +---- +$ ./mvnw install +---- + +NOTE: You can also install Maven (>=3.3.3) yourself and run the `mvn` command +in place of `./mvnw` in the examples below. If you do that you also +might need to add `-P spring` if your local Maven settings do not +contain repository declarations for spring pre-release artifacts. + +NOTE: Be aware that you might need to increase the amount of memory +available to Maven by setting a `MAVEN_OPTS` environment variable with +a value like `-Xmx512m -XX:MaxPermSize=128m`. We try to cover this in +the `.mvn` configuration, so if you find you have to do it to make a +build succeed, please raise a ticket to get the settings added to +source control. + +For hints on how to build the project look in `.travis.yml` if there +is one. There should be a "script" and maybe "install" command. Also +look at the "services" section to see if any services need to be +running locally (e.g. mongo or rabbit). Ignore the git-related bits +that you might find in "before_install" since they're related to setting git +credentials and you already have those. + +The projects that require middleware generally include a +`docker-compose.yml`, so consider using +http://compose.docker.io/[Docker Compose] to run the middeware servers +in Docker containers. See the README in the +https://github.com/spring-cloud-samples/scripts[scripts demo +repository] for specific instructions about the common cases of mongo, +rabbit and redis. + +NOTE: If all else fails, build with the command from `.travis.yml` (usually +`./mvnw install`). + +=== Documentation + +The spring-cloud-build module has a "docs" profile, and if you switch +that on it will try to build asciidoc sources from +`src/main/asciidoc`. As part of that process it will look for a +`README.adoc` and process it by loading all the includes, but not +parsing or rendering it, just copying it to `${main.basedir}` +(defaults to `${basedir}`, i.e. the root of the project). If there are +any changes in the README it will then show up after a Maven build as +a modified file in the correct place. Just commit it and push the change. + +=== Working with the code +If you don't have an IDE preference we would recommend that you use +http://www.springsource.com/developer/sts[Spring Tools Suite] or +http://eclipse.org[Eclipse] when working with the code. We use the +http://eclipse.org/m2e/[m2eclipse] eclipse plugin for maven support. Other IDEs and tools +should also work without issue as long as they use Maven 3.3.3 or better. + +==== Importing into eclipse with m2eclipse +We recommend the http://eclipse.org/m2e/[m2eclipse] eclipse plugin when working with +eclipse. If you don't already have m2eclipse installed it is available from the "eclipse +marketplace". + +NOTE: Older versions of m2e do not support Maven 3.3, so once the +projects are imported into Eclipse you will also need to tell +m2eclipse to use the right profile for the projects. If you +see many different errors related to the POMs in the projects, check +that you have an up to date installation. If you can't upgrade m2e, +add the "spring" profile to your `settings.xml`. Alternatively you can +copy the repository settings from the "spring" profile of the parent +pom into your `settings.xml`. + +==== Importing into eclipse without m2eclipse +If you prefer not to use m2eclipse you can generate eclipse project metadata using the +following command: + +[indent=0] +---- + $ ./mvnw eclipse:eclipse +---- + +The generated eclipse projects can be imported by selecting `import existing projects` +from the `file` menu. + diff --git a/docs/target/build-docs/asciidoc/building-jdk8.adoc b/docs/target/build-docs/asciidoc/building-jdk8.adoc new file mode 100644 index 00000000..ef990612 --- /dev/null +++ b/docs/target/build-docs/asciidoc/building-jdk8.adoc @@ -0,0 +1,4 @@ +:jdkversion: 1.8 + +include::https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/docs/src/main/asciidoc/building-base.adoc[] + diff --git a/docs/target/build-docs/asciidoc/building-lombok.adoc b/docs/target/build-docs/asciidoc/building-lombok.adoc new file mode 100644 index 00000000..a06b6f9c --- /dev/null +++ b/docs/target/build-docs/asciidoc/building-lombok.adoc @@ -0,0 +1,33 @@ +==== Adding Project Lombok Agent + +Spring Cloud uses http://projectlombok.org/features/index.html[Project Lombok] +to generate getters and setters etc. Compiling from the command line this +shouldn't cause any problems, but in an IDE you need to add an agent +to the JVM. Full instructions can be found in the Lombok website. The +sign that you need to do this is a lot of compiler errors to do with +missing methods and fields, e.g. + +[indent=0] +---- +The method getInitialStatus() is undefined for the type EurekaInstanceConfigBean EurekaDiscoveryClientConfiguration.java /spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/eureka line 120 Java Problem +The method getInitialStatus() is undefined for the type EurekaInstanceConfigBean EurekaDiscoveryClientConfiguration.java /spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/eureka line 121 Java Problem +The method setNonSecurePort(int) is undefined for the type EurekaInstanceConfigBean EurekaDiscoveryClientConfiguration.java /spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/eureka line 112 Java Problem +The type EurekaInstanceConfigBean.IdentifyingDataCenterInfo must implement the inherited abstract method DataCenterInfo.getName() EurekaInstanceConfigBean.java /spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/eureka line 131 Java Problem +The method getId() is undefined for the type ProxyRouteLocator.ProxyRouteSpec PreDecorationFilter.java /spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/zuul/filters/pre line 60 Java Problem +The method getLocation() is undefined for the type ProxyRouteLocator.ProxyRouteSpec PreDecorationFilter.java /spring-cloud-netflix-core/src/main/java/org/springframework/cloud/netflix/zuul/filters/pre line 55 Java Problem +---- + +==== Importing into Intellij +Spring Cloud projects use annotation processing, particularly Lombok, which requires configuration +or you will encounter compile problems. It also needs a specific version of maven and a profile +enabled. Intellij 14.1+ requires some configuration to ensure these are setup properly. + + 1. Click Preferences, Plugins. *Ensure Lombok is installed* + 2. Click New, Project from Existing Sources, choose your spring-cloud project directory + 3. Choose Maven, and select Environment Settings. *Ensure you are using Maven 3.3.3* + 4. In the next screen, *Select the profile `spring`* click Next until Finish. + 5. Click Preferences, "Build, Execution, Deployment", Compiler, Annotation Processors. *Click Enable Annotation Processing* + 6. Click Build, Rebuild Project, and you are ready to go! + +==== Importing into other IDEs +Maven is well supported by most Java IDEs. Refer to you vendor documentation. diff --git a/docs/target/build-docs/asciidoc/building.adoc b/docs/target/build-docs/asciidoc/building.adoc new file mode 100644 index 00000000..0375a590 --- /dev/null +++ b/docs/target/build-docs/asciidoc/building.adoc @@ -0,0 +1,3 @@ +:jdkversion: 1.7 + +include::https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/docs/src/main/asciidoc/building-base.adoc[] diff --git a/docs/target/build-docs/asciidoc/code-of-conduct.adoc b/docs/target/build-docs/asciidoc/code-of-conduct.adoc new file mode 100644 index 00000000..091e220b --- /dev/null +++ b/docs/target/build-docs/asciidoc/code-of-conduct.adoc @@ -0,0 +1,45 @@ + += Contributor Code of Conduct + +As contributors and maintainers of this project, and in the interest of fostering an open +and welcoming community, we pledge to respect all people who contribute through reporting +issues, posting feature requests, updating documentation, submitting pull requests or +patches, and other activities. + +We are committed to making participation in this project a harassment-free experience for +everyone, regardless of level of experience, gender, gender identity and expression, +sexual orientation, disability, personal appearance, body size, race, ethnicity, age, +religion, or nationality. + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery +* Personal attacks +* Trolling or insulting/derogatory comments +* Public or private harassment +* Publishing other's private information, such as physical or electronic addresses, + without explicit permission +* Other unethical or unprofessional conduct + +Project maintainers have the right and responsibility to remove, edit, or reject comments, +commits, code, wiki edits, issues, and other contributions that are not aligned to this +Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors +that they deem inappropriate, threatening, offensive, or harmful. + +By adopting this Code of Conduct, project maintainers commit themselves to fairly and +consistently applying these principles to every aspect of managing this project. Project +maintainers who do not follow or enforce the Code of Conduct may be permanently removed +from the project team. + +This Code of Conduct applies both within project spaces and in public spaces when an +individual is representing the project or its community. + +Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by +contacting a project maintainer at spring-code-of-conduct@pivotal.io . All complaints will +be reviewed and investigated and will result in a response that is deemed necessary and +appropriate to the circumstances. Maintainers are obligated to maintain confidentiality +with regard to the reporter of an incident. + +This Code of Conduct is adapted from the +http://contributor-covenant.org[Contributor Covenant], version 1.3.0, available at +http://contributor-covenant.org/version/1/3/0/[contributor-covenant.org/version/1/3/0/] \ No newline at end of file diff --git a/docs/target/build-docs/asciidoc/contributing-docs.adoc b/docs/target/build-docs/asciidoc/contributing-docs.adoc new file mode 100644 index 00000000..6851cced --- /dev/null +++ b/docs/target/build-docs/asciidoc/contributing-docs.adoc @@ -0,0 +1 @@ +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 {docslink}[github]. \ No newline at end of file diff --git a/docs/target/build-docs/asciidoc/contributing.adoc b/docs/target/build-docs/asciidoc/contributing.adoc new file mode 100644 index 00000000..ac8bd575 --- /dev/null +++ b/docs/target/build-docs/asciidoc/contributing.adoc @@ -0,0 +1,44 @@ +Spring Cloud is released under the non-restrictive Apache 2.0 license, +and follows a very standard Github development process, using Github +tracker for issues and merging pull requests into master. If you want +to contribute even something trivial please do not hesitate, but +follow the guidelines below. + +=== Sign the Contributor License Agreement +Before we accept a non-trivial patch or pull request we will need you to sign the +https://cla.pivotal.io/sign/spring[Contributor License Agreement]. +Signing the contributor's agreement does not grant anyone commit rights to the main +repository, but it does mean that we can accept your contributions, and you will get an +author credit if we do. Active contributors might be asked to join the core team, and +given the ability to merge pull requests. + +=== Code of Conduct +This project adheres to the Contributor Covenant https://github.com/spring-cloud/spring-cloud-build/blob/master/docs/src/main/asciidoc/code-of-conduct.adoc[code of +conduct]. By participating, you are expected to uphold this code. Please report +unacceptable behavior to spring-code-of-conduct@pivotal.io. + +=== Code Conventions and Housekeeping +None of these is essential for a pull request, but they will all help. They can also be +added after the original pull request but before a merge. + +* Use the Spring Framework code format conventions. If you use Eclipse + you can import formatter settings using the + `eclipse-code-formatter.xml` file from the + https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/spring-cloud-dependencies-parent/eclipse-code-formatter.xml[Spring + Cloud Build] project. If using IntelliJ, you can use the + http://plugins.jetbrains.com/plugin/6546[Eclipse Code Formatter + Plugin] to import the same file. +* Make sure all new `.java` files to have a simple Javadoc class comment with at least an + `@author` tag identifying you, and preferably at least a paragraph on what the class is + for. +* Add the ASF license header comment to all new `.java` files (copy from existing files + in the project) +* Add yourself as an `@author` to the .java files that you modify substantially (more + than cosmetic changes). +* Add some Javadocs and, if you change the namespace, some XSD doc elements. +* A few unit tests would help a lot as well -- someone has to do it. +* If no-one else is using your branch, please rebase it against the current master (or + other target branch in the main project). +* When writing a commit message please follow http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html[these conventions], + if you are fixing an existing issue please add `Fixes gh-XXXX` at the end of the commit + message (where XXXX is the issue number). diff --git a/docs/target/build-docs/asciidoc/ghpages.sh b/docs/target/build-docs/asciidoc/ghpages.sh new file mode 100755 index 00000000..09435af1 --- /dev/null +++ b/docs/target/build-docs/asciidoc/ghpages.sh @@ -0,0 +1,360 @@ +#!/bin/bash -x + +# Usage: (cd ; ghpages.sh -v -b -c) + +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:-} + if [ -e "${ROOT_FOLDER}/mvnw" ]; then + MAVEN_EXEC="$ROOT_FOLDER/mvnw" + else + MAVEN_EXEC="${MAVEN_PATH}mvn" + fi + echo "Path to Maven is [${MAVEN_EXEC}]" + if [ -z $REPO_NAME ]; then + REPO_NAME=$(git remote -v | grep origin | head -1 | sed -e 's!.*/!!' -e 's/ .*//' -e 's/\.git.*//') + fi + 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) && [[ "${RELEASE_TRAIN}" != "yes" ]] ; 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 + # http://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" + PREVIOUS_BRANCH=${CURRENT_BRANCH} +} + +# Switches to the provided value of the release version. We always prefix it with `v` +function switch_to_tag() { + if [[ "${RELEASE_TRAIN}" != "yes" ]] ; then + git checkout v${VERSION} + fi +} + +# 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_EXEC}" -q \ + -Dexec.executable="echo" \ + -Dexec.args='${docs.main}' \ + org.codehaus.mojo:exec-maven-plugin:1.3.1:exec \ + -P docs \ + -pl docs | tail -1 ) + echo "Extracted 'main.adoc' from Maven build [${MAIN_ADOC_VALUE}]" + + + WHITELIST_PROPERTY=${WHITELIST_PROPERTY:-"docs.whitelisted.branches"} + WHITELISTED_BRANCHES_VALUE=$("${MAVEN_EXEC}" -q \ + -Dexec.executable="echo" \ + -Dexec.args="\${${WHITELIST_PROPERTY}}" \ + org.codehaus.mojo:exec-maven-plugin:1.3.1:exec \ + -P docs \ + -pl docs | tail -1 ) + 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} && cd ${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 + if [[ -z "${RELEASE_TRAIN}" ]] ; then + DESTINATION_REPO_FOLDER=${clonedStatic}/${REPO_NAME} + else + DESTINATION_REPO_FOLDER=${clonedStatic} + fi + mkdir -p ${DESTINATION_REPO_FOLDER} + else + if [[ ! -e "${DESTINATION}/.git" ]]; then + echo "[${DESTINATION}] is not a git repository" + exit 1 + fi + if [[ -z "${RELEASE_TRAIN}" ]] ; then + DESTINATION_REPO_FOLDER=${DESTINATION}/${REPO_NAME} + else + DESTINATION_REPO_FOLDER=${DESTINATION} + fi + 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}" && -z "${RELEASE_TRAIN}" ]] ; 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}/ + fi + done + git add -A ${ROOT_FOLDER} + COMMIT_CHANGES="yes" + else + echo -e "Current branch is [${CURRENT_BRANCH}]" + # http://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 || echo "Failed to add the file [$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 + else + cp -rf $f ${destination} + fi + git add -A ${destination} + 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 ${PREVIOUS_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}], RELEASE_TRAIN [${RELEASE_TRAIN}], 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 +if [[ "${RELEASE_TRAIN}" != "" && -z "${VERSION}" ]] ; then echo "Release train was set but no version was passed!"; 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//` +- if the release train switch is passed (-r) 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 +-r|--releasetrain - instead of nesting the docs under the project_name/version folder the docs will end up in 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 + ;; + -r|--releasetrain) + RELEASE_TRAIN="yes" + ;; + -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 +retrieve_current_branch +if echo $VERSION | egrep -q 'SNAPSHOT' || [[ -z "${VERSION}" ]]; then + CLONE="" + VERSION="" + echo "You've provided a version variable but it's a snapshot one. Due to this will not clone spring-cloud-static and publish docs over there" +else + switch_to_tag +fi +build_docs_if_applicable +retrieve_doc_properties +stash_changes +add_docs_from_target +checkout_previous_branch diff --git a/docs/target/build-docs/asciidoc/spring-cloud-build.adoc b/docs/target/build-docs/asciidoc/spring-cloud-build.adoc new file mode 100644 index 00000000..ba98d967 --- /dev/null +++ b/docs/target/build-docs/asciidoc/spring-cloud-build.adoc @@ -0,0 +1,3 @@ += Spring Cloud Build + +include::README.adoc[] diff --git a/docs/target/build-docs/bash/sync_ghpages.sh b/docs/target/build-docs/bash/sync_ghpages.sh new file mode 100755 index 00000000..37c9ec0d --- /dev/null +++ b/docs/target/build-docs/bash/sync_ghpages.sh @@ -0,0 +1,211 @@ +#!/bin/bash + +set -e + +# Either clones or pulls the repo for given project +# Params: +# $1 organization e.g. spring-cloud +# $2 repo name e.g. spring-cloud-sleuth +function clone_or_pull() { + if [ "$#" -ne 2 ] + then + echo "You haven't provided 2 args... \$1 organization e.g. spring-cloud; \$2 repo name e.g. spring-cloud-sleuth" + exit 1 + fi + if [[ "${JUST_PUSH}" == "yes" ]] ; then + echo "Skipping cloning since the option to just push was provided" + exit 0 + fi + local ORGANIZATION=$1 + local REPO_NAME=$2 + local LOCALREPO_VC_DIR=${REPO_NAME}/.git + if [ ! -d ${LOCALREPO_VC_DIR} ] + then + echo "Repo [${REPO_NAME}] doesn't exist - will clone it!" + git clone git@github.com:${ORGANIZATION}/${REPO_NAME}.git + else + echo "Repo [${REPO_NAME}] exists - will pull the changes" + cd ${REPO_NAME} && git pull || echo "Not pulling since repo is up to date" + cd ${ROOT_FOLDER} + fi +} + +# For the given branch updates the docs/src/main/asciidoc/ghpages.sh +# with the one from spring-cloud-build. Then commits and pushes the change +# Params: +# $1 repo name e.g. spring-cloud-sleuth +# $2 branch name +function update_ghpages_script() { + if [ "$#" -ne 2 ] + then + echo "You haven't provided 2 args... \$1 repo name e.g. spring-cloud-sleuth; \$2 branch name e.g. master" + exit 1 + fi + local REPO_NAME=$1 + local BRANCH_NAME=$2 + echo "Updating ghpages script for [${REPO_NAME}] and branch [${BRANCH_NAME}]" + cd ${REPO_NAME} + echo "Checking out [${BRANCH_NAME}]" + git checkout ${BRANCH_NAME} + echo "Resetting the repo and pulling before commiting" + git reset --hard origin/${BRANCH_NAME} && git pull origin ${BRANCH_NAME} + # If the user wants to just push we will not copy / add / commit files + if [[ "${JUST_PUSH}" != "yes" ]] ; then + echo "Copying [${GHPAGES_DOWNLOAD_PATH}] to [${GHPAGES_IN_REPO_PATH}]" + cp -rf ${GHPAGES_DOWNLOAD_PATH} ${GHPAGES_IN_REPO_PATH} + echo "Adding and committing [${GHPAGES_IN_REPO_PATH}] with message [${COMMIT_MESSAGE}]" + git add ${GHPAGES_IN_REPO_PATH} + git commit -m "${COMMIT_MESSAGE}" || echo "Proceeding to the next repo" + fi + if [[ "${AUTO_PUSH}" == "yes" ]] ; then + echo "Pushing the branch [${BRANCH_NAME}]" + wait_if_manual_proceed + git push origin ${BRANCH_NAME} + fi + cd ${ROOT_FOLDER} +} + +# Downloads ghpages.sh +function download_ghpages() { + rm -rf ${GHPAGES_DOWNLOAD_PATH} + echo "Downloading ghpages.sh from [${GHPAGES_URL}] to [${GHPAGES_DOWNLOAD_PATH}]" + curl ${GHPAGES_URL} -o ${GHPAGES_DOWNLOAD_PATH} + chmod +x ${GHPAGES_DOWNLOAD_PATH} +} + +# Either clones or pulls the repo for given project and then updates gh-pages for the given project +# Params: +# $1 organization e.g. spring-cloud +# $2 repo name e.g. spring-cloud-sleuth +# $3 branch name e.g. master +function clone_and_update_ghpages() { + if [ "$#" -ne 3 ] + then + echo "You haven't provided 3 args... \$1 organization e.g. spring-cloud; \$2 repo name e.g. spring-cloud-sleuth; \$3 branch name e.g. master" + exit 1 + fi + local ORGANIZATION=$1 + local REPO_NAME=$2 + local BRANCH_NAME=$3 + local VAR + echo -e "\n\nWill clone the repo and update scripts for org [${ORGANIZATION}], repo [${REPO_NAME}] and branch [${BRANCH_NAME}]\n\n" + clone_or_pull ${ORGANIZATION} ${REPO_NAME} + update_ghpages_script ${REPO_NAME} ${BRANCH_NAME} + echo "Proceeding to next project" + wait_if_manual_proceed +} + +function wait_if_manual_proceed() { + if [[ "${AUTO_PROCEED}" != "yes" ]] ; then + echo -n "Press [ENTER] to continue..." + read VAR + fi +} + +# Prints the provided parameters +function print_parameters() { +cat < 0 ]] +do +key="$1" +case ${key} in + -p|--nopush) + AUTO_PUSH="no" + ;; + -m|--manualproceed) + AUTO_PROCEED="no" + ;; + -x|--justpush) + JUST_PUSH="yes" + ;; + -h|--help) + print_usage + exit 0 + ;; + *) + echo "Invalid option: [$1]" + print_usage + exit 1 + ;; +esac +shift # past argument or value +done + +export GHPAGES_URL=${GHPAGES_URL:-https://raw.githubusercontent.com/spring-cloud/spring-cloud-build/master/docs/src/main/asciidoc/ghpages.sh} +export GHPAGES_DOWNLOAD_PATH=${GHPAGES_DOWNLOAD_PATH:-/tmp/ghpages.sh} +export COMMIT_MESSAGE=${COMMIT_MESSAGE:-Updating ghpages for all projects} +export GHPAGES_IN_REPO_PATH=${GHPAGES_IN_REPO_PATH:-docs/src/main/asciidoc/ghpages.sh} +export AUTO_PROCEED=${AUTO_PROCEED:-yes} +export AUTO_PUSH=${AUTO_PUSH:-yes} +export JUST_PUSH=${JUST_PUSH:-no} +export ROOT_FOLDER=`pwd` + + +print_parameters +download_ghpages +clone_and_update_ghpages spring-cloud spring-cloud-aws master +clone_and_update_ghpages spring-cloud spring-cloud-aws 1.0.x +clone_and_update_ghpages spring-cloud spring-cloud-aws 1.2.x +clone_and_update_ghpages spring-cloud spring-cloud-bus master +clone_and_update_ghpages spring-cloud spring-cloud-cli 1.0.x +clone_and_update_ghpages spring-cloud spring-cloud-cli 1.1.x +clone_and_update_ghpages spring-cloud spring-cloud-cli master +clone_and_update_ghpages spring-cloud spring-cloud-cloudfoundry master +clone_and_update_ghpages spring-cloud spring-cloud-cluster master +clone_and_update_ghpages spring-cloud spring-cloud-commons master +clone_and_update_ghpages spring-cloud spring-cloud-config master +clone_and_update_ghpages spring-cloud spring-cloud-config 1.1.x +clone_and_update_ghpages spring-cloud spring-cloud-consul 1.0.x +clone_and_update_ghpages spring-cloud spring-cloud-consul master +clone_and_update_ghpages spring-cloud spring-cloud-contract master +clone_and_update_ghpages spring-cloud spring-cloud-netflix 1.0.x +clone_and_update_ghpages spring-cloud spring-cloud-netflix 1.1.x +clone_and_update_ghpages spring-cloud spring-cloud-netflix master +clone_and_update_ghpages spring-cloud spring-cloud-security master +clone_and_update_ghpages spring-cloud spring-cloud-sleuth 1.0.x +clone_and_update_ghpages spring-cloud spring-cloud-sleuth master +clone_and_update_ghpages spring-cloud spring-cloud-starters Brixton +clone_and_update_ghpages spring-cloud spring-cloud-starters master +clone_and_update_ghpages spring-cloud-incubator spring-cloud-vault-config master +clone_and_update_ghpages spring-cloud spring-cloud-zookeeper master \ No newline at end of file diff --git a/docs/target/build-docs/docbook/css/highlight.css b/docs/target/build-docs/docbook/css/highlight.css new file mode 100644 index 00000000..ffefef72 --- /dev/null +++ b/docs/target/build-docs/docbook/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/docs/target/build-docs/docbook/css/manual-multipage.css b/docs/target/build-docs/docbook/css/manual-multipage.css new file mode 100644 index 00000000..0c484531 --- /dev/null +++ b/docs/target/build-docs/docbook/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/docs/target/build-docs/docbook/css/manual-singlepage.css b/docs/target/build-docs/docbook/css/manual-singlepage.css new file mode 100644 index 00000000..4a7fd140 --- /dev/null +++ b/docs/target/build-docs/docbook/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/docs/target/build-docs/docbook/css/manual.css b/docs/target/build-docs/docbook/css/manual.css new file mode 100644 index 00000000..0ecbe2e8 --- /dev/null +++ b/docs/target/build-docs/docbook/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/docs/target/build-docs/docbook/images/background.png b/docs/target/build-docs/docbook/images/background.png new file mode 100644 index 00000000..15dca6fb Binary files /dev/null and b/docs/target/build-docs/docbook/images/background.png differ diff --git a/docs/target/build-docs/docbook/images/caution.png b/docs/target/build-docs/docbook/images/caution.png new file mode 100644 index 00000000..8a5e4fca Binary files /dev/null and b/docs/target/build-docs/docbook/images/caution.png differ diff --git a/docs/target/build-docs/docbook/images/important.png b/docs/target/build-docs/docbook/images/important.png new file mode 100644 index 00000000..ec54df65 Binary files /dev/null and b/docs/target/build-docs/docbook/images/important.png differ diff --git a/docs/target/build-docs/docbook/images/logo.png b/docs/target/build-docs/docbook/images/logo.png new file mode 100644 index 00000000..ade2ce6e Binary files /dev/null and b/docs/target/build-docs/docbook/images/logo.png differ diff --git a/docs/target/build-docs/docbook/images/note.png b/docs/target/build-docs/docbook/images/note.png new file mode 100644 index 00000000..88d997b1 Binary files /dev/null and b/docs/target/build-docs/docbook/images/note.png differ diff --git a/docs/target/build-docs/docbook/images/sts_exception.png b/docs/target/build-docs/docbook/images/sts_exception.png new file mode 100644 index 00000000..8607c38a Binary files /dev/null and b/docs/target/build-docs/docbook/images/sts_exception.png differ diff --git a/docs/target/build-docs/docbook/images/tip.png b/docs/target/build-docs/docbook/images/tip.png new file mode 100644 index 00000000..6530abb4 Binary files /dev/null and b/docs/target/build-docs/docbook/images/tip.png differ diff --git a/docs/target/build-docs/docbook/images/warning.png b/docs/target/build-docs/docbook/images/warning.png new file mode 100644 index 00000000..0d5b5244 Binary files /dev/null and b/docs/target/build-docs/docbook/images/warning.png differ diff --git a/docs/target/build-docs/docbook/images/web-selected.png b/docs/target/build-docs/docbook/images/web-selected.png new file mode 100644 index 00000000..aa6b2da6 Binary files /dev/null and b/docs/target/build-docs/docbook/images/web-selected.png differ diff --git a/docs/target/build-docs/docbook/xsl/common.xsl b/docs/target/build-docs/docbook/xsl/common.xsl new file mode 100644 index 00000000..157bf9d8 --- /dev/null +++ b/docs/target/build-docs/docbook/xsl/common.xsl @@ -0,0 +1,45 @@ + + + + + + + + 1 + 0 + 1 + + + + images/ + .png + + + book toc,title + 3 + + + + + diff --git a/docs/target/build-docs/docbook/xsl/epub.xsl b/docs/target/build-docs/docbook/xsl/epub.xsl new file mode 100644 index 00000000..031406ca --- /dev/null +++ b/docs/target/build-docs/docbook/xsl/epub.xsl @@ -0,0 +1,31 @@ + + + + + + + + + + diff --git a/docs/target/build-docs/docbook/xsl/html-multipage.xsl b/docs/target/build-docs/docbook/xsl/html-multipage.xsl new file mode 100644 index 00000000..be9cc52d --- /dev/null +++ b/docs/target/build-docs/docbook/xsl/html-multipage.xsl @@ -0,0 +1,73 @@ + + + + + + + + + + css/manual-multipage.css + + '5' + '1' + + + + + + + + + + + + + + + + + + + + firstpage + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/target/build-docs/docbook/xsl/html-singlepage.xsl b/docs/target/build-docs/docbook/xsl/html-singlepage.xsl new file mode 100644 index 00000000..6bd4ac81 --- /dev/null +++ b/docs/target/build-docs/docbook/xsl/html-singlepage.xsl @@ -0,0 +1,30 @@ + + + + + + + + + + css/manual-singlepage.css + + diff --git a/docs/target/build-docs/docbook/xsl/html.xsl b/docs/target/build-docs/docbook/xsl/html.xsl new file mode 100644 index 00000000..fd96f9a7 --- /dev/null +++ b/docs/target/build-docs/docbook/xsl/html.xsl @@ -0,0 +1,141 @@ + + + + + + + + + + + 1 + + + 1 + + + + 120 + images/callouts/ + .png + + + text/css + + text-align: left + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + , + + + + + + + +
+

Authors

+ +
+
+ + + + + + + + + + + + + + + + + # + + + + + + +
diff --git a/docs/target/build-docs/docbook/xsl/pdf.xsl b/docs/target/build-docs/docbook/xsl/pdf.xsl new file mode 100644 index 00000000..77360a7b --- /dev/null +++ b/docs/target/build-docs/docbook/xsl/pdf.xsl @@ -0,0 +1,582 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + auto + + + + + underline + #204060 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + , + + + + + + + + + + + Copyright © + + + + + + + + + + + + + + + + + + + + + + + + + + + + -5em + -5em + 8pt + + + + + + + + + + + + + + + please define title in your docbook file! + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 8pt + + + + + + + + + + + + + + + + + + + + + + + + + please define title in your docbook file! + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + 0 + 0 + + + + false + + + Helvetica + 10 + 8 + Helvetica + + + 1.4 + + + + left + bold + + + pt + + + + + + + + + + + + + + + 0.6em + 0.6em + 0.6em + + + pt + + 0.1em + 0.1em + 0.1em + + + + 0.4em + 0.4em + 0.4em + + + pt + + 0.1em + 0.1em + 0.1em + + + + 0.4em + 0.4em + 0.4em + + + pt + + 0.1em + 0.1em + 0.1em + + + + 0.3em + 0.3em + 0.3em + + + pt + + 0.1em + 0.1em + 0.1em + + + + + + + + 4pt + 4pt + 4pt + 4pt + + + + 0.1pt + 0.1pt + + + + + + + + + + + + + + + + 7pt + wrap + 1 + + + + 1em + 1em + 1em + 0.1em + 0.1em + 0.1em + + #444444 + solid + 0.1pt + 0.5em + 0.5em + 0.5em + 0.5em + 0.5em + 0.5em + + + + 1 + + #F0F0F0 + + + + 0.1em + 0.1em + 0.1em + 0.1em + 0.1em + 0.1em + + + + 0.5em + 0.5em + 0.5em + 0.1em + 0.1em + 0.1em + + + + #444444 + solid + 0.1pt + #F0F0F0 + + + + + + + normal + italic + + + pt + + false + 0.1em + 0.1em + 0.1em + + + + + + 0 + 1 + + + 90 + + + + + + figure after + example after + equation before + table before + procedure before + + + + 1 + 0pt + + + + + + + + + + + + + + + + + + + + 0.1em + 2em + .75pt + solid + #5c5c4f + 0.5em + 1.5em + 1.5em + 1.5em + 1.5em + 1.5em + 1.5em + + + + 10pt + bold + false + always + 0 + + + + 0em + 0em + 0em + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/target/build-docs/docbook/xsl/xslthl-config.xml b/docs/target/build-docs/docbook/xsl/xslthl-config.xml new file mode 100644 index 00000000..e4d677fc --- /dev/null +++ b/docs/target/build-docs/docbook/xsl/xslthl-config.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/target/build-docs/docbook/xsl/xslthl/asciidoc-hl.xml b/docs/target/build-docs/docbook/xsl/xslthl/asciidoc-hl.xml new file mode 100644 index 00000000..5478b1d6 --- /dev/null +++ b/docs/target/build-docs/docbook/xsl/xslthl/asciidoc-hl.xml @@ -0,0 +1,41 @@ + + + + + //// + //// + + + // + + + + ^(={1,6} .+)$ + + MULTILINE + + + ^(\.[^\.\s].+)$ + + MULTILINE + + + ^(:!?\w.*?:) + + MULTILINE + + + ^(-|\*{1,5}|\d*\.{1,5})(?= .+$) + + MULTILINE + + + ^(\[.+\])$ + + MULTILINE + + diff --git a/docs/target/build-docs/docbook/xsl/xslthl/bourne-hl.xml b/docs/target/build-docs/docbook/xsl/xslthl/bourne-hl.xml new file mode 100644 index 00000000..e2cd98d8 --- /dev/null +++ b/docs/target/build-docs/docbook/xsl/xslthl/bourne-hl.xml @@ -0,0 +1,95 @@ + + + + # + + << + ' + " + - + + + + + " + \ + + + ' + \ + + + + 0x + + + + . + + + + + + if + then + else + elif + fi + case + esac + for + while + until + do + done + + exec + shift + exit + times + break + export + trap + continue + readonly + wait + eval + return + + cd + echo + hash + pwd + read + set + test + type + ulimit + umask + unset + + diff --git a/docs/target/build-docs/docbook/xsl/xslthl/c-hl.xml b/docs/target/build-docs/docbook/xsl/xslthl/c-hl.xml new file mode 100644 index 00000000..176cc379 --- /dev/null +++ b/docs/target/build-docs/docbook/xsl/xslthl/c-hl.xml @@ -0,0 +1,117 @@ + + + + + /** + */ + + + + + + + + /* + */ + + // + + + # + \ + + + + + " + \ + + + ' + \ + + + 0x + ul + lu + u + l + + + + . + + e + ul + lu + u + f + l + + + + auto + _Bool + break + case + char + _Complex + const + continue + default + do + double + else + enum + extern + float + for + goto + if + _Imaginary + inline + int + long + register + restrict + return + short + signed + sizeof + static + struct + switch + typedef + union + unsigned + void + volatile + while + + diff --git a/docs/target/build-docs/docbook/xsl/xslthl/cpp-hl.xml b/docs/target/build-docs/docbook/xsl/xslthl/cpp-hl.xml new file mode 100644 index 00000000..ef83c4f5 --- /dev/null +++ b/docs/target/build-docs/docbook/xsl/xslthl/cpp-hl.xml @@ -0,0 +1,151 @@ + + + + + /** + */ + + + + + + + + /* + */ + + // + + + # + \ + + + + + " + \ + + + ' + \ + + + 0x + ul + lu + u + l + + + + . + + e + ul + lu + u + f + l + + + + + auto + _Bool + break + case + char + _Complex + const + continue + default + do + double + else + enum + extern + float + for + goto + if + _Imaginary + inline + int + long + register + restrict + return + short + signed + sizeof + static + struct + switch + typedef + union + unsigned + void + volatile + while + + asm + dynamic_cast + namespace + reinterpret_cast + try + bool + explicit + new + static_cast + typeid + catch + false + operator + template + typename + class + friend + private + this + using + const_cast + inline + public + throw + virtual + delete + mutable + protected + true + wchar_t + + diff --git a/docs/target/build-docs/docbook/xsl/xslthl/csharp-hl.xml b/docs/target/build-docs/docbook/xsl/xslthl/csharp-hl.xml new file mode 100644 index 00000000..d57e6310 --- /dev/null +++ b/docs/target/build-docs/docbook/xsl/xslthl/csharp-hl.xml @@ -0,0 +1,194 @@ + + + + + /** + */ + + + + /// + + + + /* + */ + + // + + + [ + ] + ( + ) + + + + # + \ + + + + + + @" + " + \ + + + + " + \ + + + ' + \ + + + 0x + ul + lu + u + l + + + + . + + e + ul + lu + u + f + d + m + l + + + + abstract + as + base + bool + break + byte + case + catch + char + checked + class + const + continue + decimal + default + delegate + do + double + else + enum + event + explicit + extern + false + finally + fixed + float + for + foreach + goto + if + implicit + in + int + interface + internal + is + lock + long + namespace + new + null + object + operator + out + override + params + private + protected + public + readonly + ref + return + sbyte + sealed + short + sizeof + stackalloc + static + string + struct + switch + this + throw + true + try + typeof + uint + ulong + unchecked + unsafe + ushort + using + virtual + void + volatile + while + + + + add + alias + from + get + global + group + into + join + orderby + partial + remove + select + set + value + where + yield + + diff --git a/docs/target/build-docs/docbook/xsl/xslthl/css-hl.xml b/docs/target/build-docs/docbook/xsl/xslthl/css-hl.xml new file mode 100644 index 00000000..164c48c3 --- /dev/null +++ b/docs/target/build-docs/docbook/xsl/xslthl/css-hl.xml @@ -0,0 +1,176 @@ + + + + + /* + */ + + + " + \ + + + + ' + \ + + + + . + + + + @charset + @import + @media + @page + + + + - + azimuth + background-attachment + background-color + background-image + background-position + background-repeat + background + border-collapse + border-color + border-spacing + border-style + border-top + border-right + border-bottom + border-left + border-top-color + border-right-color + border-bottom-color + border-left-color + border-top-style + border-right-style + border-bottom-style + border-left-style + border-top-width + border-right-width + border-bottom-width + border-left-width + border-width + border + bottom + caption-side + clear + clip + color + content + counter-increment + counter-reset + cue-after + cue-before + cue + cursor + direction + display + elevation + empty-cells + float + font-family + font-size + font-style + font-variant + font-weight + font + height + left + letter-spacing + line-height + list-style-image + list-style-position + list-style-type + list-style + margin-right + margin-left + margin-top + margin-bottom + margin + max-height + max-width + min-height + min-width + orphans + outline-color + outline-style + outline-width + outline + overflow + padding-top + padding-right + padding-bottom + padding-left + padding + page-break-after + page-break-before + page-break-inside + pause-after + pause-before + pause + pitch-range + pitch + play-during + position + quotes + richness + right + speak-header + speak-numeral + speak-punctuation + speak + speech-rate + stress + table-layout + text-align + text-decoration + text-indent + text-transform + top + unicode-bidi + vertical-align + visibility + voice-family + volume + white-space + widows + width + word-spacing + z-index + + diff --git a/docs/target/build-docs/docbook/xsl/xslthl/html-hl.xml b/docs/target/build-docs/docbook/xsl/xslthl/html-hl.xml new file mode 100644 index 00000000..5b6761ba --- /dev/null +++ b/docs/target/build-docs/docbook/xsl/xslthl/html-hl.xml @@ -0,0 +1,122 @@ + + + + + + + a + abbr + address + area + article + aside + audio + b + base + bdi + blockquote + body + br + button + caption + canvas + cite + code + command + col + colgroup + dd + del + dialog + div + dl + dt + em + embed + fieldset + figcaption + figure + font + form + footer + h1 + h2 + h3 + h4 + h5 + h6 + head + header + hr + html + i + iframe + img + input + ins + kbd + label + legend + li + link + map + mark + menu + menu + meta + nav + noscript + object + ol + optgroup + option + p + param + pre + q + samp + script + section + select + small + source + span + strong + style + sub + summary + sup + table + tbody + td + textarea + tfoot + th + thead + time + title + tr + track + u + ul + var + video + wbr + xmp + + + + + xsl: + + + diff --git a/docs/target/build-docs/docbook/xsl/xslthl/ini-hl.xml b/docs/target/build-docs/docbook/xsl/xslthl/ini-hl.xml new file mode 100644 index 00000000..34c10363 --- /dev/null +++ b/docs/target/build-docs/docbook/xsl/xslthl/ini-hl.xml @@ -0,0 +1,45 @@ + + + + ; + + + ^(\[.+\]\s*)$ + + MULTILINE + + + + ^(.+)(?==) + + MULTILINE + + diff --git a/docs/target/build-docs/docbook/xsl/xslthl/java-hl.xml b/docs/target/build-docs/docbook/xsl/xslthl/java-hl.xml new file mode 100644 index 00000000..f7bb1641 --- /dev/null +++ b/docs/target/build-docs/docbook/xsl/xslthl/java-hl.xml @@ -0,0 +1,117 @@ + + + + + /** + */ + + + + /* + */ + + // + + " + \ + + + ' + \ + + + @ + ( + ) + + + 0x + + + + . + e + f + d + l + + + + abstract + boolean + break + byte + case + catch + char + class + const + continue + default + do + double + else + extends + final + finally + float + for + goto + if + implements + import + instanceof + int + interface + long + native + new + package + private + protected + public + return + short + static + strictfp + super + switch + synchronized + this + throw + throws + transient + try + void + volatile + while + + diff --git a/docs/target/build-docs/docbook/xsl/xslthl/javascript-hl.xml b/docs/target/build-docs/docbook/xsl/xslthl/javascript-hl.xml new file mode 100644 index 00000000..99b8a71e --- /dev/null +++ b/docs/target/build-docs/docbook/xsl/xslthl/javascript-hl.xml @@ -0,0 +1,147 @@ + + + + + /* + */ + + // + + " + \ + + + ' + \ + + + 0x + + + + . + e + + + + break + case + catch + continue + default + delete + do + else + finally + for + function + if + in + instanceof + new + return + switch + this + throw + try + typeof + var + void + while + with + + abstract + boolean + byte + char + class + const + debugger + double + enum + export + extends + final + float + goto + implements + import + int + interface + long + native + package + private + protected + public + short + static + super + synchronized + throws + transient + volatile + + + prototype + + Array + Boolean + Date + Error + EvalError + Function + Math + Number + Object + RangeError + ReferenceError + RegExp + String + SyntaxError + TypeError + URIError + + decodeURI + decodeURIComponent + encodeURI + encodeURIComponent + eval + isFinite + isNaN + parseFloat + parseInt + + Infinity + NaN + undefined + + diff --git a/docs/target/build-docs/docbook/xsl/xslthl/json-hl.xml b/docs/target/build-docs/docbook/xsl/xslthl/json-hl.xml new file mode 100644 index 00000000..59b9c481 --- /dev/null +++ b/docs/target/build-docs/docbook/xsl/xslthl/json-hl.xml @@ -0,0 +1,37 @@ + + + # + + " + \ + + + ' + \ + + + @ + ( + ) + + + . + e + f + d + l + + + + true + false + + + { + } + , + [ + ] + + + diff --git a/docs/target/build-docs/docbook/xsl/xslthl/perl-hl.xml b/docs/target/build-docs/docbook/xsl/xslthl/perl-hl.xml new file mode 100644 index 00000000..73d71cc0 --- /dev/null +++ b/docs/target/build-docs/docbook/xsl/xslthl/perl-hl.xml @@ -0,0 +1,120 @@ + + + + # + + << + ' + " + + + + " + \ + + + ' + \ + + + + 0x + + + + . + + + + + if + unless + while + until + foreach + else + elsif + for + when + default + given + + caller + continue + die + do + dump + eval + exit + goto + last + next + redo + return + sub + wantarray + + caller + import + local + my + package + use + + do + import + no + package + require + use + + bless + dbmclose + dbmopen + package + ref + tie + tied + untie + use + + and + or + not + eq + ne + lt + gt + le + ge + cmp + + diff --git a/docs/target/build-docs/docbook/xsl/xslthl/php-hl.xml b/docs/target/build-docs/docbook/xsl/xslthl/php-hl.xml new file mode 100644 index 00000000..1da25b8c --- /dev/null +++ b/docs/target/build-docs/docbook/xsl/xslthl/php-hl.xml @@ -0,0 +1,154 @@ + + + + + /** + */ + + + + + + + + /* + */ + + // + # + + " + \ + + + + ' + \ + + + + <<< + + + 0x + + + + . + e + + + + and + or + xor + __FILE__ + exception + __LINE__ + array + as + break + case + class + const + continue + declare + default + die + do + echo + else + elseif + empty + enddeclare + endfor + endforeach + endif + endswitch + endwhile + eval + exit + extends + for + foreach + function + global + if + include + include_once + isset + list + new + print + require + require_once + return + static + switch + unset + use + var + while + __FUNCTION__ + __CLASS__ + __METHOD__ + final + php_user_filter + interface + implements + extends + public + private + protected + abstract + clone + try + catch + throw + cfunction + old_function + true + false + + namespace + __NAMESPACE__ + goto + __DIR__ + + + + + ?> + <?php + <?= + + + diff --git a/docs/target/build-docs/docbook/xsl/xslthl/properties-hl.xml b/docs/target/build-docs/docbook/xsl/xslthl/properties-hl.xml new file mode 100644 index 00000000..775f2f13 --- /dev/null +++ b/docs/target/build-docs/docbook/xsl/xslthl/properties-hl.xml @@ -0,0 +1,38 @@ + + + + # + + ^(.+?)(?==|:) + + MULTILINE + + diff --git a/docs/target/build-docs/docbook/xsl/xslthl/python-hl.xml b/docs/target/build-docs/docbook/xsl/xslthl/python-hl.xml new file mode 100644 index 00000000..a4674432 --- /dev/null +++ b/docs/target/build-docs/docbook/xsl/xslthl/python-hl.xml @@ -0,0 +1,100 @@ + + + + + + @ + ( + ) + + # + + """ + + + + ''' + + + + " + \ + + + ' + \ + + + 0x + l + + + + . + + e + l + + + + and + del + from + not + while + as + elif + global + or + with + assert + else + if + pass + yield + break + except + import + print + class + exec + in + raise + continue + finally + is + return + def + for + lambda + try + + diff --git a/docs/target/build-docs/docbook/xsl/xslthl/ruby-hl.xml b/docs/target/build-docs/docbook/xsl/xslthl/ruby-hl.xml new file mode 100644 index 00000000..d105640e --- /dev/null +++ b/docs/target/build-docs/docbook/xsl/xslthl/ruby-hl.xml @@ -0,0 +1,109 @@ + + + + # + + << + + + + " + \ + + + %Q{ + } + \ + + + %/ + / + \ + + + ' + \ + + + %q{ + } + \ + + + 0x + + + + . + e + + + + alias + and + BEGIN + begin + break + case + class + def + defined + do + else + elsif + END + end + ensure + false + for + if + in + module + next + nil + not + or + redo + rescue + retry + return + self + super + then + true + undef + unless + until + when + while + yield + + diff --git a/docs/target/build-docs/docbook/xsl/xslthl/sql2003-hl.xml b/docs/target/build-docs/docbook/xsl/xslthl/sql2003-hl.xml new file mode 100644 index 00000000..ac1d5d04 --- /dev/null +++ b/docs/target/build-docs/docbook/xsl/xslthl/sql2003-hl.xml @@ -0,0 +1,565 @@ + + + + -- + + /* + */ + + + ' + + + + U' + ' + + + + B' + ' + + + + N' + ' + + + + X' + ' + + + + . + + e + + + + + + A + ABS + ABSOLUTE + ACTION + ADA + ADMIN + AFTER + ALWAYS + ASC + ASSERTION + ASSIGNMENT + ATTRIBUTE + ATTRIBUTES + AVG + BEFORE + BERNOULLI + BREADTH + C + CARDINALITY + CASCADE + CATALOG_NAME + CATALOG + CEIL + CEILING + CHAIN + CHAR_LENGTH + CHARACTER_LENGTH + CHARACTER_SET_CATALOG + CHARACTER_SET_NAME + CHARACTER_SET_SCHEMA + CHARACTERISTICS + CHARACTERS + CHECKED + CLASS_ORIGIN + COALESCE + COBOL + CODE_UNITS + COLLATION_CATALOG + COLLATION_NAME + COLLATION_SCHEMA + COLLATION + COLLECT + COLUMN_NAME + COMMAND_FUNCTION_CODE + COMMAND_FUNCTION + COMMITTED + CONDITION_NUMBER + CONDITION + CONNECTION_NAME + CONSTRAINT_CATALOG + CONSTRAINT_NAME + CONSTRAINT_SCHEMA + CONSTRAINTS + CONSTRUCTORS + CONTAINS + CONVERT + CORR + COUNT + COVAR_POP + COVAR_SAMP + CUME_DIST + CURRENT_COLLATION + CURSOR_NAME + DATA + DATETIME_INTERVAL_CODE + DATETIME_INTERVAL_PRECISION + DEFAULTS + DEFERRABLE + DEFERRED + DEFINED + DEFINER + DEGREE + DENSE_RANK + DEPTH + DERIVED + DESC + DESCRIPTOR + DIAGNOSTICS + DISPATCH + DOMAIN + DYNAMIC_FUNCTION_CODE + DYNAMIC_FUNCTION + EQUALS + EVERY + EXCEPTION + EXCLUDE + EXCLUDING + EXP + EXTRACT + FINAL + FIRST + FLOOR + FOLLOWING + FORTRAN + FOUND + FUSION + G + GENERAL + GO + GOTO + GRANTED + HIERARCHY + IMPLEMENTATION + INCLUDING + INCREMENT + INITIALLY + INSTANCE + INSTANTIABLE + INTERSECTION + INVOKER + ISOLATION + K + KEY_MEMBER + KEY_TYPE + KEY + LAST + LENGTH + LEVEL + LN + LOCATOR + LOWER + M + MAP + MATCHED + MAX + MAXVALUE + MESSAGE_LENGTH + MESSAGE_OCTET_LENGTH + MESSAGE_TEXT + MIN + MINVALUE + MOD + MORE + MUMPS + NAME + NAMES + NESTING + NEXT + NORMALIZE + NORMALIZED + NULLABLE + NULLIF + NULLS + NUMBER + OBJECT + OCTET_LENGTH + OCTETS + OPTION + OPTIONS + ORDERING + ORDINALITY + OTHERS + OVERLAY + OVERRIDING + PAD + PARAMETER_MODE + PARAMETER_NAME + PARAMETER_ORDINAL_POSITION + PARAMETER_SPECIFIC_CATALOG + PARAMETER_SPECIFIC_NAME + PARAMETER_SPECIFIC_SCHEMA + PARTIAL + PASCAL + PATH + PERCENT_RANK + PERCENTILE_CONT + PERCENTILE_DISC + PLACING + PLI + POSITION + POWER + PRECEDING + PRESERVE + PRIOR + PRIVILEGES + PUBLIC + RANK + READ + RELATIVE + REPEATABLE + RESTART + RETURNED_CARDINALITY + RETURNED_LENGTH + RETURNED_OCTET_LENGTH + RETURNED_SQLSTATE + ROLE + ROUTINE_CATALOG + ROUTINE_NAME + ROUTINE_SCHEMA + ROUTINE + ROW_COUNT + ROW_NUMBER + SCALE + SCHEMA_NAME + SCHEMA + SCOPE_CATALOG + SCOPE_NAME + SCOPE_SCHEMA + SECTION + SECURITY + SELF + SEQUENCE + SERIALIZABLE + SERVER_NAME + SESSION + SETS + SIMPLE + SIZE + SOURCE + SPACE + SPECIFIC_NAME + SQRT + STATE + STATEMENT + STDDEV_POP + STDDEV_SAMP + STRUCTURE + STYLE + SUBCLASS_ORIGIN + SUBSTRING + SUM + TABLE_NAME + TABLESAMPLE + TEMPORARY + TIES + TOP_LEVEL_COUNT + TRANSACTION_ACTIVE + TRANSACTION + TRANSACTIONS_COMMITTED + TRANSACTIONS_ROLLED_BACK + TRANSFORM + TRANSFORMS + TRANSLATE + TRIGGER_CATALOG + TRIGGER_NAME + TRIGGER_SCHEMA + TRIM + TYPE + UNBOUNDED + UNCOMMITTED + UNDER + UNNAMED + USAGE + USER_DEFINED_TYPE_CATALOG + USER_DEFINED_TYPE_CODE + USER_DEFINED_TYPE_NAME + USER_DEFINED_TYPE_SCHEMA + VIEW + WORK + WRITE + ZONE + + ADD + ALL + ALLOCATE + ALTER + AND + ANY + ARE + ARRAY + AS + ASENSITIVE + ASYMMETRIC + AT + ATOMIC + AUTHORIZATION + BEGIN + BETWEEN + BIGINT + BINARY + BLOB + BOOLEAN + BOTH + BY + CALL + CALLED + CASCADED + CASE + CAST + CHAR + CHARACTER + CHECK + CLOB + CLOSE + COLLATE + COLUMN + COMMIT + CONNECT + CONSTRAINT + CONTINUE + CORRESPONDING + CREATE + CROSS + CUBE + CURRENT_DATE + CURRENT_DEFAULT_TRANSFORM_GROUP + CURRENT_PATH + CURRENT_ROLE + CURRENT_TIME + CURRENT_TIMESTAMP + CURRENT_TRANSFORM_GROUP_FOR_TYPE + CURRENT_USER + CURRENT + CURSOR + CYCLE + DATE + DAY + DEALLOCATE + DEC + DECIMAL + DECLARE + DEFAULT + DELETE + DEREF + DESCRIBE + DETERMINISTIC + DISCONNECT + DISTINCT + DOUBLE + DROP + DYNAMIC + EACH + ELEMENT + ELSE + END + END-EXEC + ESCAPE + EXCEPT + EXEC + EXECUTE + EXISTS + EXTERNAL + FALSE + FETCH + FILTER + FLOAT + FOR + FOREIGN + FREE + FROM + FULL + FUNCTION + GET + GLOBAL + GRANT + GROUP + GROUPING + HAVING + HOLD + HOUR + IDENTITY + IMMEDIATE + IN + INDICATOR + INNER + INOUT + INPUT + INSENSITIVE + INSERT + INT + INTEGER + INTERSECT + INTERVAL + INTO + IS + ISOLATION + JOIN + LANGUAGE + LARGE + LATERAL + LEADING + LEFT + LIKE + LOCAL + LOCALTIME + LOCALTIMESTAMP + MATCH + MEMBER + MERGE + METHOD + MINUTE + MODIFIES + MODULE + MONTH + MULTISET + NATIONAL + NATURAL + NCHAR + NCLOB + NEW + NO + NONE + NOT + NULL + NUMERIC + OF + OLD + ON + ONLY + OPEN + OR + ORDER + OUT + OUTER + OUTPUT + OVER + OVERLAPS + PARAMETER + PARTITION + PRECISION + PREPARE + PRIMARY + PROCEDURE + RANGE + READS + REAL + RECURSIVE + REF + REFERENCES + REFERENCING + REGR_AVGX + REGR_AVGY + REGR_COUNT + REGR_INTERCEPT + REGR_R2 + REGR_SLOPE + REGR_SXX + REGR_SXY + REGR_SYY + RELEASE + RESULT + RETURN + RETURNS + REVOKE + RIGHT + ROLLBACK + ROLLUP + ROW + ROWS + SAVEPOINT + SCROLL + SEARCH + SECOND + SELECT + SENSITIVE + SESSION_USER + SET + SIMILAR + SMALLINT + SOME + SPECIFIC + SPECIFICTYPE + SQL + SQLEXCEPTION + SQLSTATE + SQLWARNING + START + STATIC + SUBMULTISET + SYMMETRIC + SYSTEM_USER + SYSTEM + TABLE + THEN + TIME + TIMESTAMP + TIMEZONE_HOUR + TIMEZONE_MINUTE + TO + TRAILING + TRANSLATION + TREAT + TRIGGER + TRUE + UESCAPE + UNION + UNIQUE + UNKNOWN + UNNEST + UPDATE + UPPER + USER + USING + VALUE + VALUES + VAR_POP + VAR_SAMP + VARCHAR + VARYING + WHEN + WHENEVER + WHERE + WIDTH_BUCKET + WINDOW + WITH + WITHIN + WITHOUT + YEAR + + diff --git a/docs/target/build-docs/docbook/xsl/xslthl/yaml-hl.xml b/docs/target/build-docs/docbook/xsl/xslthl/yaml-hl.xml new file mode 100644 index 00000000..a28008ec --- /dev/null +++ b/docs/target/build-docs/docbook/xsl/xslthl/yaml-hl.xml @@ -0,0 +1,47 @@ + + + # + + " + \ + + + ' + \ + + + @ + ( + ) + + + . + e + f + d + l + + + + true + false + + + { + } + , + [ + ] + + + + ^(---)$ + + MULTILINE + + + ^(.+?)(?==|:) + + MULTILINE + + diff --git a/docs/target/build-docs/ruby/generate_readme.sh b/docs/target/build-docs/ruby/generate_readme.sh new file mode 100755 index 00000000..6d0ce9dc --- /dev/null +++ b/docs/target/build-docs/ruby/generate_readme.sh @@ -0,0 +1,37 @@ +#!/usr/bin/env ruby + +base_dir = File.join(File.dirname(__FILE__),'../../..') +src_dir = File.join(base_dir, "/src/main/asciidoc") +require 'asciidoctor' +require 'optparse' + +options = {} +file = "#{src_dir}/README.adoc" + +OptionParser.new do |o| + o.on('-o OUTPUT_FILE', 'Output file (default is stdout)') { |file| options[:to_file] = file unless file=='-' } + o.on('-h', '--help') { puts o; exit } + o.parse! +end + +file = ARGV[0] if ARGV.length>0 + +# Copied from https://github.com/asciidoctor/asciidoctor-extensions-lab/blob/master/scripts/asciidoc-coalescer.rb +doc = Asciidoctor.load_file file, safe: :unsafe, header_only: true, attributes: options[:attributes] +header_attr_names = (doc.instance_variable_get :@attributes_modified).to_a +header_attr_names.each {|k| doc.attributes[%(#{k}!)] = '' unless doc.attr? k } +attrs = doc.attributes +attrs['allow-uri-read'] = true +puts attrs + +out = "// Do not edit this file (e.g. go instead to src/main/asciidoc)\n\n" +doc = Asciidoctor.load_file file, safe: :unsafe, parse: false, attributes: attrs +out << doc.reader.read + +unless options[:to_file] + puts out +else + File.open(options[:to_file],'w+') do |file| + file.write(out) + end +end diff --git a/docs/target/contents/reference/html/css/highlight.css b/docs/target/contents/reference/html/css/highlight.css new file mode 100644 index 00000000..ffefef72 --- /dev/null +++ b/docs/target/contents/reference/html/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/docs/target/contents/reference/html/css/manual-multipage.css b/docs/target/contents/reference/html/css/manual-multipage.css new file mode 100644 index 00000000..0c484531 --- /dev/null +++ b/docs/target/contents/reference/html/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/docs/target/contents/reference/html/css/manual-singlepage.css b/docs/target/contents/reference/html/css/manual-singlepage.css new file mode 100644 index 00000000..4a7fd140 --- /dev/null +++ b/docs/target/contents/reference/html/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/docs/target/contents/reference/html/css/manual.css b/docs/target/contents/reference/html/css/manual.css new file mode 100644 index 00000000..0ecbe2e8 --- /dev/null +++ b/docs/target/contents/reference/html/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/docs/target/contents/reference/html/images/background.png b/docs/target/contents/reference/html/images/background.png new file mode 100644 index 00000000..15dca6fb Binary files /dev/null and b/docs/target/contents/reference/html/images/background.png differ diff --git a/docs/target/contents/reference/html/images/caution.png b/docs/target/contents/reference/html/images/caution.png new file mode 100644 index 00000000..8a5e4fca Binary files /dev/null and b/docs/target/contents/reference/html/images/caution.png differ diff --git a/docs/target/contents/reference/html/images/important.png b/docs/target/contents/reference/html/images/important.png new file mode 100644 index 00000000..ec54df65 Binary files /dev/null and b/docs/target/contents/reference/html/images/important.png differ diff --git a/docs/target/contents/reference/html/images/logo.png b/docs/target/contents/reference/html/images/logo.png new file mode 100644 index 00000000..ade2ce6e Binary files /dev/null and b/docs/target/contents/reference/html/images/logo.png differ diff --git a/docs/target/contents/reference/html/images/note.png b/docs/target/contents/reference/html/images/note.png new file mode 100644 index 00000000..88d997b1 Binary files /dev/null and b/docs/target/contents/reference/html/images/note.png differ diff --git a/docs/target/contents/reference/html/images/sts_exception.png b/docs/target/contents/reference/html/images/sts_exception.png new file mode 100644 index 00000000..8607c38a Binary files /dev/null and b/docs/target/contents/reference/html/images/sts_exception.png differ diff --git a/docs/target/contents/reference/html/images/tip.png b/docs/target/contents/reference/html/images/tip.png new file mode 100644 index 00000000..6530abb4 Binary files /dev/null and b/docs/target/contents/reference/html/images/tip.png differ diff --git a/docs/target/contents/reference/html/images/warning.png b/docs/target/contents/reference/html/images/warning.png new file mode 100644 index 00000000..0d5b5244 Binary files /dev/null and b/docs/target/contents/reference/html/images/warning.png differ diff --git a/docs/target/contents/reference/html/images/web-selected.png b/docs/target/contents/reference/html/images/web-selected.png new file mode 100644 index 00000000..aa6b2da6 Binary files /dev/null and b/docs/target/contents/reference/html/images/web-selected.png differ diff --git a/docs/target/contents/reference/html/multi_pr01.html b/docs/target/contents/reference/html/multi_pr01.html new file mode 100644 index 00000000..6a1f3696 --- /dev/null +++ b/docs/target/contents/reference/html/multi_pr01.html @@ -0,0 +1,4 @@ + + +

2.0.0.BUILD-SNAPSHOT

This project provides OpenFeign integrations for Spring Boot apps through autoconfiguration +and binding to the Spring Environment and other Spring programming model idioms.

\ No newline at end of file diff --git a/docs/target/contents/reference/html/multi_spring-cloud-feign.html b/docs/target/contents/reference/html/multi_spring-cloud-feign.html new file mode 100644 index 00000000..26bb061d --- /dev/null +++ b/docs/target/contents/reference/html/multi_spring-cloud-feign.html @@ -0,0 +1,199 @@ + + + 1. Declarative REST Client: Feign

1. Declarative REST Client: Feign

Feign is a declarative web service client. It makes writing web service clients easier. To use Feign create an interface and annotate it. It has pluggable annotation support including Feign annotations and JAX-RS annotations. Feign also supports pluggable encoders and decoders. Spring Cloud adds support for Spring MVC annotations and for using the same HttpMessageConverters used by default in Spring Web. Spring Cloud integrates Ribbon and Eureka to provide a load balanced http client when using Feign.

1.1 How to Include Feign

To include Feign in your project use the starter with group org.springframework.cloud +and artifact id spring-cloud-starter-openfeign. See the Spring Cloud Project page +for details on setting up your build system with the current Spring Cloud Release Train.

Example spring boot app

@SpringBootApplication
+@EnableFeignClients
+public class Application {
+
+    public static void main(String[] args) {
+        SpringApplication.run(Application.class, args);
+    }
+
+}

StoreClient.java.  +

@FeignClient("stores")
+public interface StoreClient {
+    @RequestMapping(method = RequestMethod.GET, value = "/stores")
+    List<Store> getStores();
+
+    @RequestMapping(method = RequestMethod.POST, value = "/stores/{storeId}", consumes = "application/json")
+    Store update(@PathVariable("storeId") Long storeId, Store store);
+}

+

In the @FeignClient annotation the String value ("stores" above) is +an arbitrary client name, which is used to create a Ribbon load +balancer (see below for details of Ribbon +support). You can also specify a URL using the url attribute +(absolute value or just a hostname). The name of the bean in the +application context is the fully qualified name of the interface. +To specify your own alias value you can use the qualifier value +of the @FeignClient annotation.

The Ribbon client above will want to discover the physical addresses +for the "stores" service. If your application is a Eureka client then +it will resolve the service in the Eureka service registry. If you +don’t want to use Eureka, you can simply configure a list of servers +in your external configuration (see +above for example).

1.2 Overriding Feign Defaults

A central concept in Spring Cloud’s Feign support is that of the named client. Each feign client is part of an ensemble of components that work together to contact a remote server on demand, and the ensemble has a name that you give it as an application developer using the @FeignClient annotation. Spring Cloud creates a new ensemble as an +ApplicationContext on demand for each named client using FeignClientsConfiguration. This contains (amongst other things) an feign.Decoder, a feign.Encoder, and a feign.Contract.

Spring Cloud lets you take full control of the feign client by declaring additional configuration (on top of the FeignClientsConfiguration) using @FeignClient. Example:

@FeignClient(name = "stores", configuration = FooConfiguration.class)
+public interface StoreClient {
+    //..
+}

In this case the client is composed from the components already in FeignClientsConfiguration together with any in FooConfiguration (where the latter will override the former).

[Note]Note

FooConfiguration does not need to be annotated with @Configuration. However, if it is, then take care to exclude it from any @ComponentScan that would otherwise include this configuration as it will become the default source for feign.Decoder, feign.Encoder, feign.Contract, etc., when specified. This can be avoided by putting it in a separate, non-overlapping package from any @ComponentScan or @SpringBootApplication, or it can be explicitly excluded in @ComponentScan.

[Note]Note

The serviceId attribute is now deprecated in favor of the name attribute.

[Warning]Warning

Previously, using the url attribute, did not require the name attribute. Using name is now required.

Placeholders are supported in the name and url attributes.

@FeignClient(name = "${feign.name}", url = "${feign.url}")
+public interface StoreClient {
+    //..
+}

Spring Cloud Netflix provides the following beans by default for feign (BeanType beanName: ClassName):

  • Decoder feignDecoder: ResponseEntityDecoder (which wraps a SpringDecoder)
  • Encoder feignEncoder: SpringEncoder
  • Logger feignLogger: Slf4jLogger
  • Contract feignContract: SpringMvcContract
  • Feign.Builder feignBuilder: HystrixFeign.Builder
  • Client feignClient: if Ribbon is enabled it is a LoadBalancerFeignClient, otherwise the default feign client is used.

The OkHttpClient and ApacheHttpClient feign clients can be used by setting feign.okhttp.enabled or feign.httpclient.enabled to true, respectively, and having them on the classpath. +You can customize the HTTP client used by providing a bean of either ClosableHttpClient when using Apache or OkHttpClient whe using OK HTTP.

Spring Cloud Netflix does not provide the following beans by default for feign, but still looks up beans of these types from the application context to create the feign client:

  • Logger.Level
  • Retryer
  • ErrorDecoder
  • Request.Options
  • Collection<RequestInterceptor>
  • SetterFactory

Creating a bean of one of those type and placing it in a @FeignClient configuration (such as FooConfiguration above) allows you to override each one of the beans described. Example:

@Configuration
+public class FooConfiguration {
+    @Bean
+    public Contract feignContract() {
+        return new feign.Contract.Default();
+    }
+
+    @Bean
+    public BasicAuthRequestInterceptor basicAuthRequestInterceptor() {
+        return new BasicAuthRequestInterceptor("user", "password");
+    }
+}

This replaces the SpringMvcContract with feign.Contract.Default and adds a RequestInterceptor to the collection of RequestInterceptor.

@FeignClient also can be configured using configuration properties.

application.yml

feign:
+  client:
+    config:
+      feignName:
+        connectTimeout: 5000
+        readTimeout: 5000
+        loggerLevel: full
+        errorDecoder: com.example.SimpleErrorDecoder
+        retryer: com.example.SimpleRetryer
+        requestInterceptors:
+          - com.example.FooRequestInterceptor
+          - com.example.BarRequestInterceptor
+        decode404: false
+        encoder: com.example.SimpleEncoder
+        decoder: com.example.SimpleDecoder
+        contract: com.example.SimpleContract

Default configurations can be specified in the @EnableFeignClients attribute defaultConfiguration in a similar manner as described above. The difference is that this configuration will apply to all feign clients.

If you prefer using configuration properties to configured all @FeignClient, you can create configuration properties with default feign name.

application.yml

feign:
+  client:
+    config:
+      default:
+        connectTimeout: 5000
+        readTimeout: 5000
+        loggerLevel: basic

If we create both @Configuration bean and configuration properties, configuration properties will win. +It will override @Configuration values. But if you want to change the priority to @Configuration, +you can change feign.client.default-to-properties to false.

[Note]Note

If you need to use ThreadLocal bound variables in your RequestInterceptor`s you will need to either set the +thread isolation strategy for Hystrix to `SEMAPHORE or disable Hystrix in Feign.

application.yml

# To disable Hystrix in Feign
+feign:
+  hystrix:
+    enabled: false
+
+# To set thread isolation to SEMAPHORE
+hystrix:
+  command:
+    default:
+      execution:
+        isolation:
+          strategy: SEMAPHORE

1.3 Creating Feign Clients Manually

In some cases it might be necessary to customize your Feign Clients in a way that is not +possible using the methods above. In this case you can create Clients using the +Feign Builder API. Below is an example +which creates two Feign Clients with the same interface but configures each one with +a separate request interceptor.

@Import(FeignClientsConfiguration.class)
+class FooController {
+
+	private FooClient fooClient;
+
+	private FooClient adminClient;
+
+    	@Autowired
+	public FooController(
+			Decoder decoder, Encoder encoder, Client client, Contract contract) {
+		this.fooClient = Feign.builder().client(client)
+				.encoder(encoder)
+				.decoder(decoder)
+                .contract(contract)
+				.requestInterceptor(new BasicAuthRequestInterceptor("user", "user"))
+				.target(FooClient.class, "http://PROD-SVC");
+		this.adminClient = Feign.builder().client(client)
+				.encoder(encoder)
+				.decoder(decoder)
+				.contract(contract)
+				.requestInterceptor(new BasicAuthRequestInterceptor("admin", "admin"))
+				.target(FooClient.class, "http://PROD-SVC");
+    }
+}
[Note]Note

In the above example FeignClientsConfiguration.class is the default configuration +provided by Spring Cloud Netflix.

[Note]Note

PROD-SVC is the name of the service the Clients will be making requests to.

[Note]Note

The Feign Contract object defines what annotations and values are valid on interfaces. The +autowired Contract bean provides supports for SpringMVC annotations, instead of +the default Feign native annotations.

1.4 Feign Hystrix Support

If Hystrix is on the classpath and feign.hystrix.enabled=true, Feign will wrap all methods with a circuit breaker. Returning a com.netflix.hystrix.HystrixCommand is also available. This lets you use reactive patterns (with a call to .toObservable() or .observe() or asynchronous use (with a call to .queue()).

To disable Hystrix support on a per-client basis create a vanilla Feign.Builder with the "prototype" scope, e.g.:

@Configuration
+public class FooConfiguration {
+    	@Bean
+	@Scope("prototype")
+	public Feign.Builder feignBuilder() {
+		return Feign.builder();
+	}
+}
[Warning]Warning

Prior to the Spring Cloud Dalston release, if Hystrix was on the classpath Feign would have wrapped +all methods in a circuit breaker by default. This default behavior was changed in Spring Cloud Dalston in +favor for an opt-in approach.

1.5 Feign Hystrix Fallbacks

Hystrix supports the notion of a fallback: a default code path that is executed when they circuit is open or there is an error. To enable fallbacks for a given @FeignClient set the fallback attribute to the class name that implements the fallback. You also need to declare your implementation as a Spring bean.

@FeignClient(name = "hello", fallback = HystrixClientFallback.class)
+protected interface HystrixClient {
+    @RequestMapping(method = RequestMethod.GET, value = "/hello")
+    Hello iFailSometimes();
+}
+
+static class HystrixClientFallback implements HystrixClient {
+    @Override
+    public Hello iFailSometimes() {
+        return new Hello("fallback");
+    }
+}

If one needs access to the cause that made the fallback trigger, one can use the fallbackFactory attribute inside @FeignClient.

@FeignClient(name = "hello", fallbackFactory = HystrixClientFallbackFactory.class)
+protected interface HystrixClient {
+	@RequestMapping(method = RequestMethod.GET, value = "/hello")
+	Hello iFailSometimes();
+}
+
+@Component
+static class HystrixClientFallbackFactory implements FallbackFactory<HystrixClient> {
+	@Override
+	public HystrixClient create(Throwable cause) {
+		return new HystrixClient() {
+			@Override
+			public Hello iFailSometimes() {
+				return new Hello("fallback; reason was: " + cause.getMessage());
+			}
+		};
+	}
+}
[Warning]Warning

There is a limitation with the implementation of fallbacks in Feign and how Hystrix fallbacks work. Fallbacks are currently not supported for methods that return com.netflix.hystrix.HystrixCommand and rx.Observable.

1.6 Feign and @Primary

When using Feign with Hystrix fallbacks, there are multiple beans in the ApplicationContext of the same type. This will cause @Autowired to not work because there isn’t exactly one bean, or one marked as primary. To work around this, Spring Cloud Netflix marks all Feign instances as @Primary, so Spring Framework will know which bean to inject. In some cases, this may not be desirable. To turn off this behavior set the primary attribute of @FeignClient to false.

@FeignClient(name = "hello", primary = false)
+public interface HelloClient {
+	// methods here
+}

1.7 Feign Inheritance Support

Feign supports boilerplate apis via single-inheritance interfaces. +This allows grouping common operations into convenient base interfaces.

UserService.java.  +

public interface UserService {
+
+    @RequestMapping(method = RequestMethod.GET, value ="/users/{id}")
+    User getUser(@PathVariable("id") long id);
+}

+

UserResource.java.  +

@RestController
+public class UserResource implements UserService {
+
+}

+

UserClient.java.  +

package project.user;
+
+@FeignClient("users")
+public interface UserClient extends UserService {
+
+}

+

[Note]Note

It is generally not advisable to share an interface between a +server and a client. It introduces tight coupling, and also actually +doesn’t work with Spring MVC in its current form (method parameter +mapping is not inherited).

1.8 Feign request/response compression

You may consider enabling the request or response GZIP compression for your +Feign requests. You can do this by enabling one of the properties:

feign.compression.request.enabled=true
+feign.compression.response.enabled=true

Feign request compression gives you settings similar to what you may set for your web server:

feign.compression.request.enabled=true
+feign.compression.request.mime-types=text/xml,application/xml,application/json
+feign.compression.request.min-request-size=2048

These properties allow you to be selective about the compressed media types and minimum request threshold length.

1.9 Feign logging

A logger is created for each Feign client created. By default the name of the logger is the full class name of the interface used to create the Feign client. Feign logging only responds to the DEBUG level.

application.yml.  +

logging.level.project.user.UserClient: DEBUG

+

The Logger.Level object that you may configure per client, tells Feign how much to log. Choices are:

  • NONE, No logging (DEFAULT).
  • BASIC, Log only the request method and URL and the response status code and execution time.
  • HEADERS, Log the basic information along with request and response headers.
  • FULL, Log the headers, body, and metadata for both requests and responses.

For example, the following would set the Logger.Level to FULL:

@Configuration
+public class FooConfiguration {
+    @Bean
+    Logger.Level feignLoggerLevel() {
+        return Logger.Level.FULL;
+    }
+}
        OtherClass.someMethod(myprop.get());
+    }
+}
+stripped). The proxy uses Ribbon to locate an instance to forward to
+via discovery, and all requests are executed in a
+<<hystrix-fallbacks-for-routes, hystrix command>>, so
+failures will show up in Hystrix metrics, and once the circuit is open
+the proxy will not try to contact the service.
\ No newline at end of file diff --git a/docs/target/contents/reference/html/multi_spring-cloud-openfeign.html b/docs/target/contents/reference/html/multi_spring-cloud-openfeign.html new file mode 100644 index 00000000..656ec8ad --- /dev/null +++ b/docs/target/contents/reference/html/multi_spring-cloud-openfeign.html @@ -0,0 +1,3 @@ + + + Spring Cloud OpenFeign \ No newline at end of file diff --git a/docs/target/contents/reference/htmlsingle/css/highlight.css b/docs/target/contents/reference/htmlsingle/css/highlight.css new file mode 100644 index 00000000..ffefef72 --- /dev/null +++ b/docs/target/contents/reference/htmlsingle/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/docs/target/contents/reference/htmlsingle/css/manual-multipage.css b/docs/target/contents/reference/htmlsingle/css/manual-multipage.css new file mode 100644 index 00000000..0c484531 --- /dev/null +++ b/docs/target/contents/reference/htmlsingle/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/docs/target/contents/reference/htmlsingle/css/manual-singlepage.css b/docs/target/contents/reference/htmlsingle/css/manual-singlepage.css new file mode 100644 index 00000000..4a7fd140 --- /dev/null +++ b/docs/target/contents/reference/htmlsingle/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/docs/target/contents/reference/htmlsingle/css/manual.css b/docs/target/contents/reference/htmlsingle/css/manual.css new file mode 100644 index 00000000..0ecbe2e8 --- /dev/null +++ b/docs/target/contents/reference/htmlsingle/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/docs/target/contents/reference/htmlsingle/images/background.png b/docs/target/contents/reference/htmlsingle/images/background.png new file mode 100644 index 00000000..15dca6fb Binary files /dev/null and b/docs/target/contents/reference/htmlsingle/images/background.png differ diff --git a/docs/target/contents/reference/htmlsingle/images/caution.png b/docs/target/contents/reference/htmlsingle/images/caution.png new file mode 100644 index 00000000..8a5e4fca Binary files /dev/null and b/docs/target/contents/reference/htmlsingle/images/caution.png differ diff --git a/docs/target/contents/reference/htmlsingle/images/important.png b/docs/target/contents/reference/htmlsingle/images/important.png new file mode 100644 index 00000000..ec54df65 Binary files /dev/null and b/docs/target/contents/reference/htmlsingle/images/important.png differ diff --git a/docs/target/contents/reference/htmlsingle/images/logo.png b/docs/target/contents/reference/htmlsingle/images/logo.png new file mode 100644 index 00000000..ade2ce6e Binary files /dev/null and b/docs/target/contents/reference/htmlsingle/images/logo.png differ diff --git a/docs/target/contents/reference/htmlsingle/images/note.png b/docs/target/contents/reference/htmlsingle/images/note.png new file mode 100644 index 00000000..88d997b1 Binary files /dev/null and b/docs/target/contents/reference/htmlsingle/images/note.png differ diff --git a/docs/target/contents/reference/htmlsingle/images/sts_exception.png b/docs/target/contents/reference/htmlsingle/images/sts_exception.png new file mode 100644 index 00000000..8607c38a Binary files /dev/null and b/docs/target/contents/reference/htmlsingle/images/sts_exception.png differ diff --git a/docs/target/contents/reference/htmlsingle/images/tip.png b/docs/target/contents/reference/htmlsingle/images/tip.png new file mode 100644 index 00000000..6530abb4 Binary files /dev/null and b/docs/target/contents/reference/htmlsingle/images/tip.png differ diff --git a/docs/target/contents/reference/htmlsingle/images/warning.png b/docs/target/contents/reference/htmlsingle/images/warning.png new file mode 100644 index 00000000..0d5b5244 Binary files /dev/null and b/docs/target/contents/reference/htmlsingle/images/warning.png differ diff --git a/docs/target/contents/reference/htmlsingle/images/web-selected.png b/docs/target/contents/reference/htmlsingle/images/web-selected.png new file mode 100644 index 00000000..aa6b2da6 Binary files /dev/null and b/docs/target/contents/reference/htmlsingle/images/web-selected.png differ diff --git a/docs/target/contents/reference/htmlsingle/spring-cloud-openfeign.html b/docs/target/contents/reference/htmlsingle/spring-cloud-openfeign.html new file mode 100644 index 00000000..ab902387 --- /dev/null +++ b/docs/target/contents/reference/htmlsingle/spring-cloud-openfeign.html @@ -0,0 +1,200 @@ + + + Spring Cloud OpenFeign

Spring Cloud OpenFeign


2.0.0.BUILD-SNAPSHOT

This project provides OpenFeign integrations for Spring Boot apps through autoconfiguration +and binding to the Spring Environment and other Spring programming model idioms.

1. Declarative REST Client: Feign

Feign is a declarative web service client. It makes writing web service clients easier. To use Feign create an interface and annotate it. It has pluggable annotation support including Feign annotations and JAX-RS annotations. Feign also supports pluggable encoders and decoders. Spring Cloud adds support for Spring MVC annotations and for using the same HttpMessageConverters used by default in Spring Web. Spring Cloud integrates Ribbon and Eureka to provide a load balanced http client when using Feign.

1.1 How to Include Feign

To include Feign in your project use the starter with group org.springframework.cloud +and artifact id spring-cloud-starter-openfeign. See the Spring Cloud Project page +for details on setting up your build system with the current Spring Cloud Release Train.

Example spring boot app

@SpringBootApplication
+@EnableFeignClients
+public class Application {
+
+    public static void main(String[] args) {
+        SpringApplication.run(Application.class, args);
+    }
+
+}

StoreClient.java.  +

@FeignClient("stores")
+public interface StoreClient {
+    @RequestMapping(method = RequestMethod.GET, value = "/stores")
+    List<Store> getStores();
+
+    @RequestMapping(method = RequestMethod.POST, value = "/stores/{storeId}", consumes = "application/json")
+    Store update(@PathVariable("storeId") Long storeId, Store store);
+}

+

In the @FeignClient annotation the String value ("stores" above) is +an arbitrary client name, which is used to create a Ribbon load +balancer (see below for details of Ribbon +support). You can also specify a URL using the url attribute +(absolute value or just a hostname). The name of the bean in the +application context is the fully qualified name of the interface. +To specify your own alias value you can use the qualifier value +of the @FeignClient annotation.

The Ribbon client above will want to discover the physical addresses +for the "stores" service. If your application is a Eureka client then +it will resolve the service in the Eureka service registry. If you +don’t want to use Eureka, you can simply configure a list of servers +in your external configuration (see +above for example).

1.2 Overriding Feign Defaults

A central concept in Spring Cloud’s Feign support is that of the named client. Each feign client is part of an ensemble of components that work together to contact a remote server on demand, and the ensemble has a name that you give it as an application developer using the @FeignClient annotation. Spring Cloud creates a new ensemble as an +ApplicationContext on demand for each named client using FeignClientsConfiguration. This contains (amongst other things) an feign.Decoder, a feign.Encoder, and a feign.Contract.

Spring Cloud lets you take full control of the feign client by declaring additional configuration (on top of the FeignClientsConfiguration) using @FeignClient. Example:

@FeignClient(name = "stores", configuration = FooConfiguration.class)
+public interface StoreClient {
+    //..
+}

In this case the client is composed from the components already in FeignClientsConfiguration together with any in FooConfiguration (where the latter will override the former).

[Note]Note

FooConfiguration does not need to be annotated with @Configuration. However, if it is, then take care to exclude it from any @ComponentScan that would otherwise include this configuration as it will become the default source for feign.Decoder, feign.Encoder, feign.Contract, etc., when specified. This can be avoided by putting it in a separate, non-overlapping package from any @ComponentScan or @SpringBootApplication, or it can be explicitly excluded in @ComponentScan.

[Note]Note

The serviceId attribute is now deprecated in favor of the name attribute.

[Warning]Warning

Previously, using the url attribute, did not require the name attribute. Using name is now required.

Placeholders are supported in the name and url attributes.

@FeignClient(name = "${feign.name}", url = "${feign.url}")
+public interface StoreClient {
+    //..
+}

Spring Cloud Netflix provides the following beans by default for feign (BeanType beanName: ClassName):

  • Decoder feignDecoder: ResponseEntityDecoder (which wraps a SpringDecoder)
  • Encoder feignEncoder: SpringEncoder
  • Logger feignLogger: Slf4jLogger
  • Contract feignContract: SpringMvcContract
  • Feign.Builder feignBuilder: HystrixFeign.Builder
  • Client feignClient: if Ribbon is enabled it is a LoadBalancerFeignClient, otherwise the default feign client is used.

The OkHttpClient and ApacheHttpClient feign clients can be used by setting feign.okhttp.enabled or feign.httpclient.enabled to true, respectively, and having them on the classpath. +You can customize the HTTP client used by providing a bean of either ClosableHttpClient when using Apache or OkHttpClient whe using OK HTTP.

Spring Cloud Netflix does not provide the following beans by default for feign, but still looks up beans of these types from the application context to create the feign client:

  • Logger.Level
  • Retryer
  • ErrorDecoder
  • Request.Options
  • Collection<RequestInterceptor>
  • SetterFactory

Creating a bean of one of those type and placing it in a @FeignClient configuration (such as FooConfiguration above) allows you to override each one of the beans described. Example:

@Configuration
+public class FooConfiguration {
+    @Bean
+    public Contract feignContract() {
+        return new feign.Contract.Default();
+    }
+
+    @Bean
+    public BasicAuthRequestInterceptor basicAuthRequestInterceptor() {
+        return new BasicAuthRequestInterceptor("user", "password");
+    }
+}

This replaces the SpringMvcContract with feign.Contract.Default and adds a RequestInterceptor to the collection of RequestInterceptor.

@FeignClient also can be configured using configuration properties.

application.yml

feign:
+  client:
+    config:
+      feignName:
+        connectTimeout: 5000
+        readTimeout: 5000
+        loggerLevel: full
+        errorDecoder: com.example.SimpleErrorDecoder
+        retryer: com.example.SimpleRetryer
+        requestInterceptors:
+          - com.example.FooRequestInterceptor
+          - com.example.BarRequestInterceptor
+        decode404: false
+        encoder: com.example.SimpleEncoder
+        decoder: com.example.SimpleDecoder
+        contract: com.example.SimpleContract

Default configurations can be specified in the @EnableFeignClients attribute defaultConfiguration in a similar manner as described above. The difference is that this configuration will apply to all feign clients.

If you prefer using configuration properties to configured all @FeignClient, you can create configuration properties with default feign name.

application.yml

feign:
+  client:
+    config:
+      default:
+        connectTimeout: 5000
+        readTimeout: 5000
+        loggerLevel: basic

If we create both @Configuration bean and configuration properties, configuration properties will win. +It will override @Configuration values. But if you want to change the priority to @Configuration, +you can change feign.client.default-to-properties to false.

[Note]Note

If you need to use ThreadLocal bound variables in your RequestInterceptor`s you will need to either set the +thread isolation strategy for Hystrix to `SEMAPHORE or disable Hystrix in Feign.

application.yml

# To disable Hystrix in Feign
+feign:
+  hystrix:
+    enabled: false
+
+# To set thread isolation to SEMAPHORE
+hystrix:
+  command:
+    default:
+      execution:
+        isolation:
+          strategy: SEMAPHORE

1.3 Creating Feign Clients Manually

In some cases it might be necessary to customize your Feign Clients in a way that is not +possible using the methods above. In this case you can create Clients using the +Feign Builder API. Below is an example +which creates two Feign Clients with the same interface but configures each one with +a separate request interceptor.

@Import(FeignClientsConfiguration.class)
+class FooController {
+
+	private FooClient fooClient;
+
+	private FooClient adminClient;
+
+    	@Autowired
+	public FooController(
+			Decoder decoder, Encoder encoder, Client client, Contract contract) {
+		this.fooClient = Feign.builder().client(client)
+				.encoder(encoder)
+				.decoder(decoder)
+                .contract(contract)
+				.requestInterceptor(new BasicAuthRequestInterceptor("user", "user"))
+				.target(FooClient.class, "http://PROD-SVC");
+		this.adminClient = Feign.builder().client(client)
+				.encoder(encoder)
+				.decoder(decoder)
+				.contract(contract)
+				.requestInterceptor(new BasicAuthRequestInterceptor("admin", "admin"))
+				.target(FooClient.class, "http://PROD-SVC");
+    }
+}
[Note]Note

In the above example FeignClientsConfiguration.class is the default configuration +provided by Spring Cloud Netflix.

[Note]Note

PROD-SVC is the name of the service the Clients will be making requests to.

[Note]Note

The Feign Contract object defines what annotations and values are valid on interfaces. The +autowired Contract bean provides supports for SpringMVC annotations, instead of +the default Feign native annotations.

1.4 Feign Hystrix Support

If Hystrix is on the classpath and feign.hystrix.enabled=true, Feign will wrap all methods with a circuit breaker. Returning a com.netflix.hystrix.HystrixCommand is also available. This lets you use reactive patterns (with a call to .toObservable() or .observe() or asynchronous use (with a call to .queue()).

To disable Hystrix support on a per-client basis create a vanilla Feign.Builder with the "prototype" scope, e.g.:

@Configuration
+public class FooConfiguration {
+    	@Bean
+	@Scope("prototype")
+	public Feign.Builder feignBuilder() {
+		return Feign.builder();
+	}
+}
[Warning]Warning

Prior to the Spring Cloud Dalston release, if Hystrix was on the classpath Feign would have wrapped +all methods in a circuit breaker by default. This default behavior was changed in Spring Cloud Dalston in +favor for an opt-in approach.

1.5 Feign Hystrix Fallbacks

Hystrix supports the notion of a fallback: a default code path that is executed when they circuit is open or there is an error. To enable fallbacks for a given @FeignClient set the fallback attribute to the class name that implements the fallback. You also need to declare your implementation as a Spring bean.

@FeignClient(name = "hello", fallback = HystrixClientFallback.class)
+protected interface HystrixClient {
+    @RequestMapping(method = RequestMethod.GET, value = "/hello")
+    Hello iFailSometimes();
+}
+
+static class HystrixClientFallback implements HystrixClient {
+    @Override
+    public Hello iFailSometimes() {
+        return new Hello("fallback");
+    }
+}

If one needs access to the cause that made the fallback trigger, one can use the fallbackFactory attribute inside @FeignClient.

@FeignClient(name = "hello", fallbackFactory = HystrixClientFallbackFactory.class)
+protected interface HystrixClient {
+	@RequestMapping(method = RequestMethod.GET, value = "/hello")
+	Hello iFailSometimes();
+}
+
+@Component
+static class HystrixClientFallbackFactory implements FallbackFactory<HystrixClient> {
+	@Override
+	public HystrixClient create(Throwable cause) {
+		return new HystrixClient() {
+			@Override
+			public Hello iFailSometimes() {
+				return new Hello("fallback; reason was: " + cause.getMessage());
+			}
+		};
+	}
+}
[Warning]Warning

There is a limitation with the implementation of fallbacks in Feign and how Hystrix fallbacks work. Fallbacks are currently not supported for methods that return com.netflix.hystrix.HystrixCommand and rx.Observable.

1.6 Feign and @Primary

When using Feign with Hystrix fallbacks, there are multiple beans in the ApplicationContext of the same type. This will cause @Autowired to not work because there isn’t exactly one bean, or one marked as primary. To work around this, Spring Cloud Netflix marks all Feign instances as @Primary, so Spring Framework will know which bean to inject. In some cases, this may not be desirable. To turn off this behavior set the primary attribute of @FeignClient to false.

@FeignClient(name = "hello", primary = false)
+public interface HelloClient {
+	// methods here
+}

1.7 Feign Inheritance Support

Feign supports boilerplate apis via single-inheritance interfaces. +This allows grouping common operations into convenient base interfaces.

UserService.java.  +

public interface UserService {
+
+    @RequestMapping(method = RequestMethod.GET, value ="/users/{id}")
+    User getUser(@PathVariable("id") long id);
+}

+

UserResource.java.  +

@RestController
+public class UserResource implements UserService {
+
+}

+

UserClient.java.  +

package project.user;
+
+@FeignClient("users")
+public interface UserClient extends UserService {
+
+}

+

[Note]Note

It is generally not advisable to share an interface between a +server and a client. It introduces tight coupling, and also actually +doesn’t work with Spring MVC in its current form (method parameter +mapping is not inherited).

1.8 Feign request/response compression

You may consider enabling the request or response GZIP compression for your +Feign requests. You can do this by enabling one of the properties:

feign.compression.request.enabled=true
+feign.compression.response.enabled=true

Feign request compression gives you settings similar to what you may set for your web server:

feign.compression.request.enabled=true
+feign.compression.request.mime-types=text/xml,application/xml,application/json
+feign.compression.request.min-request-size=2048

These properties allow you to be selective about the compressed media types and minimum request threshold length.

1.9 Feign logging

A logger is created for each Feign client created. By default the name of the logger is the full class name of the interface used to create the Feign client. Feign logging only responds to the DEBUG level.

application.yml.  +

logging.level.project.user.UserClient: DEBUG

+

The Logger.Level object that you may configure per client, tells Feign how much to log. Choices are:

  • NONE, No logging (DEFAULT).
  • BASIC, Log only the request method and URL and the response status code and execution time.
  • HEADERS, Log the basic information along with request and response headers.
  • FULL, Log the headers, body, and metadata for both requests and responses.

For example, the following would set the Logger.Level to FULL:

@Configuration
+public class FooConfiguration {
+    @Bean
+    Logger.Level feignLoggerLevel() {
+        return Logger.Level.FULL;
+    }
+}
        OtherClass.someMethod(myprop.get());
+    }
+}
+stripped). The proxy uses Ribbon to locate an instance to forward to
+via discovery, and all requests are executed in a
+<<hystrix-fallbacks-for-routes, hystrix command>>, so
+failures will show up in Hystrix metrics, and once the circuit is open
+the proxy will not try to contact the service.
\ No newline at end of file diff --git a/docs/target/dependency-maven-plugin-markers/org.springframework.cloud-spring-cloud-build-docs-jar-sources-2.0.0.BUILD-SNAPSHOT.marker b/docs/target/dependency-maven-plugin-markers/org.springframework.cloud-spring-cloud-build-docs-jar-sources-2.0.0.BUILD-SNAPSHOT.marker new file mode 100644 index 00000000..e69de29b diff --git a/docs/target/docbook/html/multi_pr01.html b/docs/target/docbook/html/multi_pr01.html new file mode 100644 index 00000000..6a1f3696 --- /dev/null +++ b/docs/target/docbook/html/multi_pr01.html @@ -0,0 +1,4 @@ + + +

2.0.0.BUILD-SNAPSHOT

This project provides OpenFeign integrations for Spring Boot apps through autoconfiguration +and binding to the Spring Environment and other Spring programming model idioms.

\ No newline at end of file diff --git a/docs/target/docbook/html/multi_spring-cloud-feign.html b/docs/target/docbook/html/multi_spring-cloud-feign.html new file mode 100644 index 00000000..26bb061d --- /dev/null +++ b/docs/target/docbook/html/multi_spring-cloud-feign.html @@ -0,0 +1,199 @@ + + + 1. Declarative REST Client: Feign

1. Declarative REST Client: Feign

Feign is a declarative web service client. It makes writing web service clients easier. To use Feign create an interface and annotate it. It has pluggable annotation support including Feign annotations and JAX-RS annotations. Feign also supports pluggable encoders and decoders. Spring Cloud adds support for Spring MVC annotations and for using the same HttpMessageConverters used by default in Spring Web. Spring Cloud integrates Ribbon and Eureka to provide a load balanced http client when using Feign.

1.1 How to Include Feign

To include Feign in your project use the starter with group org.springframework.cloud +and artifact id spring-cloud-starter-openfeign. See the Spring Cloud Project page +for details on setting up your build system with the current Spring Cloud Release Train.

Example spring boot app

@SpringBootApplication
+@EnableFeignClients
+public class Application {
+
+    public static void main(String[] args) {
+        SpringApplication.run(Application.class, args);
+    }
+
+}

StoreClient.java.  +

@FeignClient("stores")
+public interface StoreClient {
+    @RequestMapping(method = RequestMethod.GET, value = "/stores")
+    List<Store> getStores();
+
+    @RequestMapping(method = RequestMethod.POST, value = "/stores/{storeId}", consumes = "application/json")
+    Store update(@PathVariable("storeId") Long storeId, Store store);
+}

+

In the @FeignClient annotation the String value ("stores" above) is +an arbitrary client name, which is used to create a Ribbon load +balancer (see below for details of Ribbon +support). You can also specify a URL using the url attribute +(absolute value or just a hostname). The name of the bean in the +application context is the fully qualified name of the interface. +To specify your own alias value you can use the qualifier value +of the @FeignClient annotation.

The Ribbon client above will want to discover the physical addresses +for the "stores" service. If your application is a Eureka client then +it will resolve the service in the Eureka service registry. If you +don’t want to use Eureka, you can simply configure a list of servers +in your external configuration (see +above for example).

1.2 Overriding Feign Defaults

A central concept in Spring Cloud’s Feign support is that of the named client. Each feign client is part of an ensemble of components that work together to contact a remote server on demand, and the ensemble has a name that you give it as an application developer using the @FeignClient annotation. Spring Cloud creates a new ensemble as an +ApplicationContext on demand for each named client using FeignClientsConfiguration. This contains (amongst other things) an feign.Decoder, a feign.Encoder, and a feign.Contract.

Spring Cloud lets you take full control of the feign client by declaring additional configuration (on top of the FeignClientsConfiguration) using @FeignClient. Example:

@FeignClient(name = "stores", configuration = FooConfiguration.class)
+public interface StoreClient {
+    //..
+}

In this case the client is composed from the components already in FeignClientsConfiguration together with any in FooConfiguration (where the latter will override the former).

[Note]Note

FooConfiguration does not need to be annotated with @Configuration. However, if it is, then take care to exclude it from any @ComponentScan that would otherwise include this configuration as it will become the default source for feign.Decoder, feign.Encoder, feign.Contract, etc., when specified. This can be avoided by putting it in a separate, non-overlapping package from any @ComponentScan or @SpringBootApplication, or it can be explicitly excluded in @ComponentScan.

[Note]Note

The serviceId attribute is now deprecated in favor of the name attribute.

[Warning]Warning

Previously, using the url attribute, did not require the name attribute. Using name is now required.

Placeholders are supported in the name and url attributes.

@FeignClient(name = "${feign.name}", url = "${feign.url}")
+public interface StoreClient {
+    //..
+}

Spring Cloud Netflix provides the following beans by default for feign (BeanType beanName: ClassName):

  • Decoder feignDecoder: ResponseEntityDecoder (which wraps a SpringDecoder)
  • Encoder feignEncoder: SpringEncoder
  • Logger feignLogger: Slf4jLogger
  • Contract feignContract: SpringMvcContract
  • Feign.Builder feignBuilder: HystrixFeign.Builder
  • Client feignClient: if Ribbon is enabled it is a LoadBalancerFeignClient, otherwise the default feign client is used.

The OkHttpClient and ApacheHttpClient feign clients can be used by setting feign.okhttp.enabled or feign.httpclient.enabled to true, respectively, and having them on the classpath. +You can customize the HTTP client used by providing a bean of either ClosableHttpClient when using Apache or OkHttpClient whe using OK HTTP.

Spring Cloud Netflix does not provide the following beans by default for feign, but still looks up beans of these types from the application context to create the feign client:

  • Logger.Level
  • Retryer
  • ErrorDecoder
  • Request.Options
  • Collection<RequestInterceptor>
  • SetterFactory

Creating a bean of one of those type and placing it in a @FeignClient configuration (such as FooConfiguration above) allows you to override each one of the beans described. Example:

@Configuration
+public class FooConfiguration {
+    @Bean
+    public Contract feignContract() {
+        return new feign.Contract.Default();
+    }
+
+    @Bean
+    public BasicAuthRequestInterceptor basicAuthRequestInterceptor() {
+        return new BasicAuthRequestInterceptor("user", "password");
+    }
+}

This replaces the SpringMvcContract with feign.Contract.Default and adds a RequestInterceptor to the collection of RequestInterceptor.

@FeignClient also can be configured using configuration properties.

application.yml

feign:
+  client:
+    config:
+      feignName:
+        connectTimeout: 5000
+        readTimeout: 5000
+        loggerLevel: full
+        errorDecoder: com.example.SimpleErrorDecoder
+        retryer: com.example.SimpleRetryer
+        requestInterceptors:
+          - com.example.FooRequestInterceptor
+          - com.example.BarRequestInterceptor
+        decode404: false
+        encoder: com.example.SimpleEncoder
+        decoder: com.example.SimpleDecoder
+        contract: com.example.SimpleContract

Default configurations can be specified in the @EnableFeignClients attribute defaultConfiguration in a similar manner as described above. The difference is that this configuration will apply to all feign clients.

If you prefer using configuration properties to configured all @FeignClient, you can create configuration properties with default feign name.

application.yml

feign:
+  client:
+    config:
+      default:
+        connectTimeout: 5000
+        readTimeout: 5000
+        loggerLevel: basic

If we create both @Configuration bean and configuration properties, configuration properties will win. +It will override @Configuration values. But if you want to change the priority to @Configuration, +you can change feign.client.default-to-properties to false.

[Note]Note

If you need to use ThreadLocal bound variables in your RequestInterceptor`s you will need to either set the +thread isolation strategy for Hystrix to `SEMAPHORE or disable Hystrix in Feign.

application.yml

# To disable Hystrix in Feign
+feign:
+  hystrix:
+    enabled: false
+
+# To set thread isolation to SEMAPHORE
+hystrix:
+  command:
+    default:
+      execution:
+        isolation:
+          strategy: SEMAPHORE

1.3 Creating Feign Clients Manually

In some cases it might be necessary to customize your Feign Clients in a way that is not +possible using the methods above. In this case you can create Clients using the +Feign Builder API. Below is an example +which creates two Feign Clients with the same interface but configures each one with +a separate request interceptor.

@Import(FeignClientsConfiguration.class)
+class FooController {
+
+	private FooClient fooClient;
+
+	private FooClient adminClient;
+
+    	@Autowired
+	public FooController(
+			Decoder decoder, Encoder encoder, Client client, Contract contract) {
+		this.fooClient = Feign.builder().client(client)
+				.encoder(encoder)
+				.decoder(decoder)
+                .contract(contract)
+				.requestInterceptor(new BasicAuthRequestInterceptor("user", "user"))
+				.target(FooClient.class, "http://PROD-SVC");
+		this.adminClient = Feign.builder().client(client)
+				.encoder(encoder)
+				.decoder(decoder)
+				.contract(contract)
+				.requestInterceptor(new BasicAuthRequestInterceptor("admin", "admin"))
+				.target(FooClient.class, "http://PROD-SVC");
+    }
+}
[Note]Note

In the above example FeignClientsConfiguration.class is the default configuration +provided by Spring Cloud Netflix.

[Note]Note

PROD-SVC is the name of the service the Clients will be making requests to.

[Note]Note

The Feign Contract object defines what annotations and values are valid on interfaces. The +autowired Contract bean provides supports for SpringMVC annotations, instead of +the default Feign native annotations.

1.4 Feign Hystrix Support

If Hystrix is on the classpath and feign.hystrix.enabled=true, Feign will wrap all methods with a circuit breaker. Returning a com.netflix.hystrix.HystrixCommand is also available. This lets you use reactive patterns (with a call to .toObservable() or .observe() or asynchronous use (with a call to .queue()).

To disable Hystrix support on a per-client basis create a vanilla Feign.Builder with the "prototype" scope, e.g.:

@Configuration
+public class FooConfiguration {
+    	@Bean
+	@Scope("prototype")
+	public Feign.Builder feignBuilder() {
+		return Feign.builder();
+	}
+}
[Warning]Warning

Prior to the Spring Cloud Dalston release, if Hystrix was on the classpath Feign would have wrapped +all methods in a circuit breaker by default. This default behavior was changed in Spring Cloud Dalston in +favor for an opt-in approach.

1.5 Feign Hystrix Fallbacks

Hystrix supports the notion of a fallback: a default code path that is executed when they circuit is open or there is an error. To enable fallbacks for a given @FeignClient set the fallback attribute to the class name that implements the fallback. You also need to declare your implementation as a Spring bean.

@FeignClient(name = "hello", fallback = HystrixClientFallback.class)
+protected interface HystrixClient {
+    @RequestMapping(method = RequestMethod.GET, value = "/hello")
+    Hello iFailSometimes();
+}
+
+static class HystrixClientFallback implements HystrixClient {
+    @Override
+    public Hello iFailSometimes() {
+        return new Hello("fallback");
+    }
+}

If one needs access to the cause that made the fallback trigger, one can use the fallbackFactory attribute inside @FeignClient.

@FeignClient(name = "hello", fallbackFactory = HystrixClientFallbackFactory.class)
+protected interface HystrixClient {
+	@RequestMapping(method = RequestMethod.GET, value = "/hello")
+	Hello iFailSometimes();
+}
+
+@Component
+static class HystrixClientFallbackFactory implements FallbackFactory<HystrixClient> {
+	@Override
+	public HystrixClient create(Throwable cause) {
+		return new HystrixClient() {
+			@Override
+			public Hello iFailSometimes() {
+				return new Hello("fallback; reason was: " + cause.getMessage());
+			}
+		};
+	}
+}
[Warning]Warning

There is a limitation with the implementation of fallbacks in Feign and how Hystrix fallbacks work. Fallbacks are currently not supported for methods that return com.netflix.hystrix.HystrixCommand and rx.Observable.

1.6 Feign and @Primary

When using Feign with Hystrix fallbacks, there are multiple beans in the ApplicationContext of the same type. This will cause @Autowired to not work because there isn’t exactly one bean, or one marked as primary. To work around this, Spring Cloud Netflix marks all Feign instances as @Primary, so Spring Framework will know which bean to inject. In some cases, this may not be desirable. To turn off this behavior set the primary attribute of @FeignClient to false.

@FeignClient(name = "hello", primary = false)
+public interface HelloClient {
+	// methods here
+}

1.7 Feign Inheritance Support

Feign supports boilerplate apis via single-inheritance interfaces. +This allows grouping common operations into convenient base interfaces.

UserService.java.  +

public interface UserService {
+
+    @RequestMapping(method = RequestMethod.GET, value ="/users/{id}")
+    User getUser(@PathVariable("id") long id);
+}

+

UserResource.java.  +

@RestController
+public class UserResource implements UserService {
+
+}

+

UserClient.java.  +

package project.user;
+
+@FeignClient("users")
+public interface UserClient extends UserService {
+
+}

+

[Note]Note

It is generally not advisable to share an interface between a +server and a client. It introduces tight coupling, and also actually +doesn’t work with Spring MVC in its current form (method parameter +mapping is not inherited).

1.8 Feign request/response compression

You may consider enabling the request or response GZIP compression for your +Feign requests. You can do this by enabling one of the properties:

feign.compression.request.enabled=true
+feign.compression.response.enabled=true

Feign request compression gives you settings similar to what you may set for your web server:

feign.compression.request.enabled=true
+feign.compression.request.mime-types=text/xml,application/xml,application/json
+feign.compression.request.min-request-size=2048

These properties allow you to be selective about the compressed media types and minimum request threshold length.

1.9 Feign logging

A logger is created for each Feign client created. By default the name of the logger is the full class name of the interface used to create the Feign client. Feign logging only responds to the DEBUG level.

application.yml.  +

logging.level.project.user.UserClient: DEBUG

+

The Logger.Level object that you may configure per client, tells Feign how much to log. Choices are:

  • NONE, No logging (DEFAULT).
  • BASIC, Log only the request method and URL and the response status code and execution time.
  • HEADERS, Log the basic information along with request and response headers.
  • FULL, Log the headers, body, and metadata for both requests and responses.

For example, the following would set the Logger.Level to FULL:

@Configuration
+public class FooConfiguration {
+    @Bean
+    Logger.Level feignLoggerLevel() {
+        return Logger.Level.FULL;
+    }
+}
        OtherClass.someMethod(myprop.get());
+    }
+}
+stripped). The proxy uses Ribbon to locate an instance to forward to
+via discovery, and all requests are executed in a
+<<hystrix-fallbacks-for-routes, hystrix command>>, so
+failures will show up in Hystrix metrics, and once the circuit is open
+the proxy will not try to contact the service.
\ No newline at end of file diff --git a/docs/target/docbook/html/multi_spring-cloud-openfeign.html b/docs/target/docbook/html/multi_spring-cloud-openfeign.html new file mode 100644 index 00000000..656ec8ad --- /dev/null +++ b/docs/target/docbook/html/multi_spring-cloud-openfeign.html @@ -0,0 +1,3 @@ + + + Spring Cloud OpenFeign \ No newline at end of file diff --git a/docs/target/docbook/htmlsingle/spring-cloud-openfeign.html b/docs/target/docbook/htmlsingle/spring-cloud-openfeign.html new file mode 100644 index 00000000..ab902387 --- /dev/null +++ b/docs/target/docbook/htmlsingle/spring-cloud-openfeign.html @@ -0,0 +1,200 @@ + + + Spring Cloud OpenFeign

Spring Cloud OpenFeign


2.0.0.BUILD-SNAPSHOT

This project provides OpenFeign integrations for Spring Boot apps through autoconfiguration +and binding to the Spring Environment and other Spring programming model idioms.

1. Declarative REST Client: Feign

Feign is a declarative web service client. It makes writing web service clients easier. To use Feign create an interface and annotate it. It has pluggable annotation support including Feign annotations and JAX-RS annotations. Feign also supports pluggable encoders and decoders. Spring Cloud adds support for Spring MVC annotations and for using the same HttpMessageConverters used by default in Spring Web. Spring Cloud integrates Ribbon and Eureka to provide a load balanced http client when using Feign.

1.1 How to Include Feign

To include Feign in your project use the starter with group org.springframework.cloud +and artifact id spring-cloud-starter-openfeign. See the Spring Cloud Project page +for details on setting up your build system with the current Spring Cloud Release Train.

Example spring boot app

@SpringBootApplication
+@EnableFeignClients
+public class Application {
+
+    public static void main(String[] args) {
+        SpringApplication.run(Application.class, args);
+    }
+
+}

StoreClient.java.  +

@FeignClient("stores")
+public interface StoreClient {
+    @RequestMapping(method = RequestMethod.GET, value = "/stores")
+    List<Store> getStores();
+
+    @RequestMapping(method = RequestMethod.POST, value = "/stores/{storeId}", consumes = "application/json")
+    Store update(@PathVariable("storeId") Long storeId, Store store);
+}

+

In the @FeignClient annotation the String value ("stores" above) is +an arbitrary client name, which is used to create a Ribbon load +balancer (see below for details of Ribbon +support). You can also specify a URL using the url attribute +(absolute value or just a hostname). The name of the bean in the +application context is the fully qualified name of the interface. +To specify your own alias value you can use the qualifier value +of the @FeignClient annotation.

The Ribbon client above will want to discover the physical addresses +for the "stores" service. If your application is a Eureka client then +it will resolve the service in the Eureka service registry. If you +don’t want to use Eureka, you can simply configure a list of servers +in your external configuration (see +above for example).

1.2 Overriding Feign Defaults

A central concept in Spring Cloud’s Feign support is that of the named client. Each feign client is part of an ensemble of components that work together to contact a remote server on demand, and the ensemble has a name that you give it as an application developer using the @FeignClient annotation. Spring Cloud creates a new ensemble as an +ApplicationContext on demand for each named client using FeignClientsConfiguration. This contains (amongst other things) an feign.Decoder, a feign.Encoder, and a feign.Contract.

Spring Cloud lets you take full control of the feign client by declaring additional configuration (on top of the FeignClientsConfiguration) using @FeignClient. Example:

@FeignClient(name = "stores", configuration = FooConfiguration.class)
+public interface StoreClient {
+    //..
+}

In this case the client is composed from the components already in FeignClientsConfiguration together with any in FooConfiguration (where the latter will override the former).

[Note]Note

FooConfiguration does not need to be annotated with @Configuration. However, if it is, then take care to exclude it from any @ComponentScan that would otherwise include this configuration as it will become the default source for feign.Decoder, feign.Encoder, feign.Contract, etc., when specified. This can be avoided by putting it in a separate, non-overlapping package from any @ComponentScan or @SpringBootApplication, or it can be explicitly excluded in @ComponentScan.

[Note]Note

The serviceId attribute is now deprecated in favor of the name attribute.

[Warning]Warning

Previously, using the url attribute, did not require the name attribute. Using name is now required.

Placeholders are supported in the name and url attributes.

@FeignClient(name = "${feign.name}", url = "${feign.url}")
+public interface StoreClient {
+    //..
+}

Spring Cloud Netflix provides the following beans by default for feign (BeanType beanName: ClassName):

  • Decoder feignDecoder: ResponseEntityDecoder (which wraps a SpringDecoder)
  • Encoder feignEncoder: SpringEncoder
  • Logger feignLogger: Slf4jLogger
  • Contract feignContract: SpringMvcContract
  • Feign.Builder feignBuilder: HystrixFeign.Builder
  • Client feignClient: if Ribbon is enabled it is a LoadBalancerFeignClient, otherwise the default feign client is used.

The OkHttpClient and ApacheHttpClient feign clients can be used by setting feign.okhttp.enabled or feign.httpclient.enabled to true, respectively, and having them on the classpath. +You can customize the HTTP client used by providing a bean of either ClosableHttpClient when using Apache or OkHttpClient whe using OK HTTP.

Spring Cloud Netflix does not provide the following beans by default for feign, but still looks up beans of these types from the application context to create the feign client:

  • Logger.Level
  • Retryer
  • ErrorDecoder
  • Request.Options
  • Collection<RequestInterceptor>
  • SetterFactory

Creating a bean of one of those type and placing it in a @FeignClient configuration (such as FooConfiguration above) allows you to override each one of the beans described. Example:

@Configuration
+public class FooConfiguration {
+    @Bean
+    public Contract feignContract() {
+        return new feign.Contract.Default();
+    }
+
+    @Bean
+    public BasicAuthRequestInterceptor basicAuthRequestInterceptor() {
+        return new BasicAuthRequestInterceptor("user", "password");
+    }
+}

This replaces the SpringMvcContract with feign.Contract.Default and adds a RequestInterceptor to the collection of RequestInterceptor.

@FeignClient also can be configured using configuration properties.

application.yml

feign:
+  client:
+    config:
+      feignName:
+        connectTimeout: 5000
+        readTimeout: 5000
+        loggerLevel: full
+        errorDecoder: com.example.SimpleErrorDecoder
+        retryer: com.example.SimpleRetryer
+        requestInterceptors:
+          - com.example.FooRequestInterceptor
+          - com.example.BarRequestInterceptor
+        decode404: false
+        encoder: com.example.SimpleEncoder
+        decoder: com.example.SimpleDecoder
+        contract: com.example.SimpleContract

Default configurations can be specified in the @EnableFeignClients attribute defaultConfiguration in a similar manner as described above. The difference is that this configuration will apply to all feign clients.

If you prefer using configuration properties to configured all @FeignClient, you can create configuration properties with default feign name.

application.yml

feign:
+  client:
+    config:
+      default:
+        connectTimeout: 5000
+        readTimeout: 5000
+        loggerLevel: basic

If we create both @Configuration bean and configuration properties, configuration properties will win. +It will override @Configuration values. But if you want to change the priority to @Configuration, +you can change feign.client.default-to-properties to false.

[Note]Note

If you need to use ThreadLocal bound variables in your RequestInterceptor`s you will need to either set the +thread isolation strategy for Hystrix to `SEMAPHORE or disable Hystrix in Feign.

application.yml

# To disable Hystrix in Feign
+feign:
+  hystrix:
+    enabled: false
+
+# To set thread isolation to SEMAPHORE
+hystrix:
+  command:
+    default:
+      execution:
+        isolation:
+          strategy: SEMAPHORE

1.3 Creating Feign Clients Manually

In some cases it might be necessary to customize your Feign Clients in a way that is not +possible using the methods above. In this case you can create Clients using the +Feign Builder API. Below is an example +which creates two Feign Clients with the same interface but configures each one with +a separate request interceptor.

@Import(FeignClientsConfiguration.class)
+class FooController {
+
+	private FooClient fooClient;
+
+	private FooClient adminClient;
+
+    	@Autowired
+	public FooController(
+			Decoder decoder, Encoder encoder, Client client, Contract contract) {
+		this.fooClient = Feign.builder().client(client)
+				.encoder(encoder)
+				.decoder(decoder)
+                .contract(contract)
+				.requestInterceptor(new BasicAuthRequestInterceptor("user", "user"))
+				.target(FooClient.class, "http://PROD-SVC");
+		this.adminClient = Feign.builder().client(client)
+				.encoder(encoder)
+				.decoder(decoder)
+				.contract(contract)
+				.requestInterceptor(new BasicAuthRequestInterceptor("admin", "admin"))
+				.target(FooClient.class, "http://PROD-SVC");
+    }
+}
[Note]Note

In the above example FeignClientsConfiguration.class is the default configuration +provided by Spring Cloud Netflix.

[Note]Note

PROD-SVC is the name of the service the Clients will be making requests to.

[Note]Note

The Feign Contract object defines what annotations and values are valid on interfaces. The +autowired Contract bean provides supports for SpringMVC annotations, instead of +the default Feign native annotations.

1.4 Feign Hystrix Support

If Hystrix is on the classpath and feign.hystrix.enabled=true, Feign will wrap all methods with a circuit breaker. Returning a com.netflix.hystrix.HystrixCommand is also available. This lets you use reactive patterns (with a call to .toObservable() or .observe() or asynchronous use (with a call to .queue()).

To disable Hystrix support on a per-client basis create a vanilla Feign.Builder with the "prototype" scope, e.g.:

@Configuration
+public class FooConfiguration {
+    	@Bean
+	@Scope("prototype")
+	public Feign.Builder feignBuilder() {
+		return Feign.builder();
+	}
+}
[Warning]Warning

Prior to the Spring Cloud Dalston release, if Hystrix was on the classpath Feign would have wrapped +all methods in a circuit breaker by default. This default behavior was changed in Spring Cloud Dalston in +favor for an opt-in approach.

1.5 Feign Hystrix Fallbacks

Hystrix supports the notion of a fallback: a default code path that is executed when they circuit is open or there is an error. To enable fallbacks for a given @FeignClient set the fallback attribute to the class name that implements the fallback. You also need to declare your implementation as a Spring bean.

@FeignClient(name = "hello", fallback = HystrixClientFallback.class)
+protected interface HystrixClient {
+    @RequestMapping(method = RequestMethod.GET, value = "/hello")
+    Hello iFailSometimes();
+}
+
+static class HystrixClientFallback implements HystrixClient {
+    @Override
+    public Hello iFailSometimes() {
+        return new Hello("fallback");
+    }
+}

If one needs access to the cause that made the fallback trigger, one can use the fallbackFactory attribute inside @FeignClient.

@FeignClient(name = "hello", fallbackFactory = HystrixClientFallbackFactory.class)
+protected interface HystrixClient {
+	@RequestMapping(method = RequestMethod.GET, value = "/hello")
+	Hello iFailSometimes();
+}
+
+@Component
+static class HystrixClientFallbackFactory implements FallbackFactory<HystrixClient> {
+	@Override
+	public HystrixClient create(Throwable cause) {
+		return new HystrixClient() {
+			@Override
+			public Hello iFailSometimes() {
+				return new Hello("fallback; reason was: " + cause.getMessage());
+			}
+		};
+	}
+}
[Warning]Warning

There is a limitation with the implementation of fallbacks in Feign and how Hystrix fallbacks work. Fallbacks are currently not supported for methods that return com.netflix.hystrix.HystrixCommand and rx.Observable.

1.6 Feign and @Primary

When using Feign with Hystrix fallbacks, there are multiple beans in the ApplicationContext of the same type. This will cause @Autowired to not work because there isn’t exactly one bean, or one marked as primary. To work around this, Spring Cloud Netflix marks all Feign instances as @Primary, so Spring Framework will know which bean to inject. In some cases, this may not be desirable. To turn off this behavior set the primary attribute of @FeignClient to false.

@FeignClient(name = "hello", primary = false)
+public interface HelloClient {
+	// methods here
+}

1.7 Feign Inheritance Support

Feign supports boilerplate apis via single-inheritance interfaces. +This allows grouping common operations into convenient base interfaces.

UserService.java.  +

public interface UserService {
+
+    @RequestMapping(method = RequestMethod.GET, value ="/users/{id}")
+    User getUser(@PathVariable("id") long id);
+}

+

UserResource.java.  +

@RestController
+public class UserResource implements UserService {
+
+}

+

UserClient.java.  +

package project.user;
+
+@FeignClient("users")
+public interface UserClient extends UserService {
+
+}

+

[Note]Note

It is generally not advisable to share an interface between a +server and a client. It introduces tight coupling, and also actually +doesn’t work with Spring MVC in its current form (method parameter +mapping is not inherited).

1.8 Feign request/response compression

You may consider enabling the request or response GZIP compression for your +Feign requests. You can do this by enabling one of the properties:

feign.compression.request.enabled=true
+feign.compression.response.enabled=true

Feign request compression gives you settings similar to what you may set for your web server:

feign.compression.request.enabled=true
+feign.compression.request.mime-types=text/xml,application/xml,application/json
+feign.compression.request.min-request-size=2048

These properties allow you to be selective about the compressed media types and minimum request threshold length.

1.9 Feign logging

A logger is created for each Feign client created. By default the name of the logger is the full class name of the interface used to create the Feign client. Feign logging only responds to the DEBUG level.

application.yml.  +

logging.level.project.user.UserClient: DEBUG

+

The Logger.Level object that you may configure per client, tells Feign how much to log. Choices are:

  • NONE, No logging (DEFAULT).
  • BASIC, Log only the request method and URL and the response status code and execution time.
  • HEADERS, Log the basic information along with request and response headers.
  • FULL, Log the headers, body, and metadata for both requests and responses.

For example, the following would set the Logger.Level to FULL:

@Configuration
+public class FooConfiguration {
+    @Bean
+    Logger.Level feignLoggerLevel() {
+        return Logger.Level.FULL;
+    }
+}
        OtherClass.someMethod(myprop.get());
+    }
+}
+stripped). The proxy uses Ribbon to locate an instance to forward to
+via discovery, and all requests are executed in a
+<<hystrix-fallbacks-for-routes, hystrix command>>, so
+failures will show up in Hystrix metrics, and once the circuit is open
+the proxy will not try to contact the service.
\ No newline at end of file diff --git a/docs/target/generated-docs/css/highlight.css b/docs/target/generated-docs/css/highlight.css new file mode 100644 index 00000000..ffefef72 --- /dev/null +++ b/docs/target/generated-docs/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/docs/target/generated-docs/css/manual-multipage.css b/docs/target/generated-docs/css/manual-multipage.css new file mode 100644 index 00000000..0c484531 --- /dev/null +++ b/docs/target/generated-docs/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/docs/target/generated-docs/css/manual-singlepage.css b/docs/target/generated-docs/css/manual-singlepage.css new file mode 100644 index 00000000..4a7fd140 --- /dev/null +++ b/docs/target/generated-docs/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/docs/target/generated-docs/css/manual.css b/docs/target/generated-docs/css/manual.css new file mode 100644 index 00000000..0ecbe2e8 --- /dev/null +++ b/docs/target/generated-docs/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/docs/target/generated-docs/ghpages.sh b/docs/target/generated-docs/ghpages.sh new file mode 100644 index 00000000..57c5da3a --- /dev/null +++ b/docs/target/generated-docs/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 + # http://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}]" + # http://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/docs/target/generated-docs/images/background.png b/docs/target/generated-docs/images/background.png new file mode 100644 index 00000000..15dca6fb Binary files /dev/null and b/docs/target/generated-docs/images/background.png differ diff --git a/docs/target/generated-docs/images/caution.png b/docs/target/generated-docs/images/caution.png new file mode 100644 index 00000000..8a5e4fca Binary files /dev/null and b/docs/target/generated-docs/images/caution.png differ diff --git a/docs/target/generated-docs/images/important.png b/docs/target/generated-docs/images/important.png new file mode 100644 index 00000000..ec54df65 Binary files /dev/null and b/docs/target/generated-docs/images/important.png differ diff --git a/docs/target/generated-docs/images/logo.png b/docs/target/generated-docs/images/logo.png new file mode 100644 index 00000000..ade2ce6e Binary files /dev/null and b/docs/target/generated-docs/images/logo.png differ diff --git a/docs/target/generated-docs/images/note.png b/docs/target/generated-docs/images/note.png new file mode 100644 index 00000000..88d997b1 Binary files /dev/null and b/docs/target/generated-docs/images/note.png differ diff --git a/docs/target/generated-docs/images/sts_exception.png b/docs/target/generated-docs/images/sts_exception.png new file mode 100644 index 00000000..8607c38a Binary files /dev/null and b/docs/target/generated-docs/images/sts_exception.png differ diff --git a/docs/target/generated-docs/images/tip.png b/docs/target/generated-docs/images/tip.png new file mode 100644 index 00000000..6530abb4 Binary files /dev/null and b/docs/target/generated-docs/images/tip.png differ diff --git a/docs/target/generated-docs/images/warning.png b/docs/target/generated-docs/images/warning.png new file mode 100644 index 00000000..0d5b5244 Binary files /dev/null and b/docs/target/generated-docs/images/warning.png differ diff --git a/docs/target/generated-docs/images/web-selected.png b/docs/target/generated-docs/images/web-selected.png new file mode 100644 index 00000000..aa6b2da6 Binary files /dev/null and b/docs/target/generated-docs/images/web-selected.png differ diff --git a/docs/target/generated-docs/multi/css/highlight.css b/docs/target/generated-docs/multi/css/highlight.css new file mode 100644 index 00000000..ffefef72 --- /dev/null +++ b/docs/target/generated-docs/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/docs/target/generated-docs/multi/css/manual-multipage.css b/docs/target/generated-docs/multi/css/manual-multipage.css new file mode 100644 index 00000000..0c484531 --- /dev/null +++ b/docs/target/generated-docs/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/docs/target/generated-docs/multi/css/manual-singlepage.css b/docs/target/generated-docs/multi/css/manual-singlepage.css new file mode 100644 index 00000000..4a7fd140 --- /dev/null +++ b/docs/target/generated-docs/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/docs/target/generated-docs/multi/css/manual.css b/docs/target/generated-docs/multi/css/manual.css new file mode 100644 index 00000000..0ecbe2e8 --- /dev/null +++ b/docs/target/generated-docs/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/docs/target/generated-docs/multi/images/background.png b/docs/target/generated-docs/multi/images/background.png new file mode 100644 index 00000000..15dca6fb Binary files /dev/null and b/docs/target/generated-docs/multi/images/background.png differ diff --git a/docs/target/generated-docs/multi/images/caution.png b/docs/target/generated-docs/multi/images/caution.png new file mode 100644 index 00000000..8a5e4fca Binary files /dev/null and b/docs/target/generated-docs/multi/images/caution.png differ diff --git a/docs/target/generated-docs/multi/images/important.png b/docs/target/generated-docs/multi/images/important.png new file mode 100644 index 00000000..ec54df65 Binary files /dev/null and b/docs/target/generated-docs/multi/images/important.png differ diff --git a/docs/target/generated-docs/multi/images/logo.png b/docs/target/generated-docs/multi/images/logo.png new file mode 100644 index 00000000..ade2ce6e Binary files /dev/null and b/docs/target/generated-docs/multi/images/logo.png differ diff --git a/docs/target/generated-docs/multi/images/note.png b/docs/target/generated-docs/multi/images/note.png new file mode 100644 index 00000000..88d997b1 Binary files /dev/null and b/docs/target/generated-docs/multi/images/note.png differ diff --git a/docs/target/generated-docs/multi/images/sts_exception.png b/docs/target/generated-docs/multi/images/sts_exception.png new file mode 100644 index 00000000..8607c38a Binary files /dev/null and b/docs/target/generated-docs/multi/images/sts_exception.png differ diff --git a/docs/target/generated-docs/multi/images/tip.png b/docs/target/generated-docs/multi/images/tip.png new file mode 100644 index 00000000..6530abb4 Binary files /dev/null and b/docs/target/generated-docs/multi/images/tip.png differ diff --git a/docs/target/generated-docs/multi/images/warning.png b/docs/target/generated-docs/multi/images/warning.png new file mode 100644 index 00000000..0d5b5244 Binary files /dev/null and b/docs/target/generated-docs/multi/images/warning.png differ diff --git a/docs/target/generated-docs/multi/images/web-selected.png b/docs/target/generated-docs/multi/images/web-selected.png new file mode 100644 index 00000000..aa6b2da6 Binary files /dev/null and b/docs/target/generated-docs/multi/images/web-selected.png differ diff --git a/docs/target/generated-docs/multi/multi_pr01.html b/docs/target/generated-docs/multi/multi_pr01.html new file mode 100644 index 00000000..6a1f3696 --- /dev/null +++ b/docs/target/generated-docs/multi/multi_pr01.html @@ -0,0 +1,4 @@ + + +

2.0.0.BUILD-SNAPSHOT

This project provides OpenFeign integrations for Spring Boot apps through autoconfiguration +and binding to the Spring Environment and other Spring programming model idioms.

\ No newline at end of file diff --git a/docs/target/generated-docs/multi/multi_spring-cloud-feign.html b/docs/target/generated-docs/multi/multi_spring-cloud-feign.html new file mode 100644 index 00000000..26bb061d --- /dev/null +++ b/docs/target/generated-docs/multi/multi_spring-cloud-feign.html @@ -0,0 +1,199 @@ + + + 1. Declarative REST Client: Feign

1. Declarative REST Client: Feign

Feign is a declarative web service client. It makes writing web service clients easier. To use Feign create an interface and annotate it. It has pluggable annotation support including Feign annotations and JAX-RS annotations. Feign also supports pluggable encoders and decoders. Spring Cloud adds support for Spring MVC annotations and for using the same HttpMessageConverters used by default in Spring Web. Spring Cloud integrates Ribbon and Eureka to provide a load balanced http client when using Feign.

1.1 How to Include Feign

To include Feign in your project use the starter with group org.springframework.cloud +and artifact id spring-cloud-starter-openfeign. See the Spring Cloud Project page +for details on setting up your build system with the current Spring Cloud Release Train.

Example spring boot app

@SpringBootApplication
+@EnableFeignClients
+public class Application {
+
+    public static void main(String[] args) {
+        SpringApplication.run(Application.class, args);
+    }
+
+}

StoreClient.java.  +

@FeignClient("stores")
+public interface StoreClient {
+    @RequestMapping(method = RequestMethod.GET, value = "/stores")
+    List<Store> getStores();
+
+    @RequestMapping(method = RequestMethod.POST, value = "/stores/{storeId}", consumes = "application/json")
+    Store update(@PathVariable("storeId") Long storeId, Store store);
+}

+

In the @FeignClient annotation the String value ("stores" above) is +an arbitrary client name, which is used to create a Ribbon load +balancer (see below for details of Ribbon +support). You can also specify a URL using the url attribute +(absolute value or just a hostname). The name of the bean in the +application context is the fully qualified name of the interface. +To specify your own alias value you can use the qualifier value +of the @FeignClient annotation.

The Ribbon client above will want to discover the physical addresses +for the "stores" service. If your application is a Eureka client then +it will resolve the service in the Eureka service registry. If you +don’t want to use Eureka, you can simply configure a list of servers +in your external configuration (see +above for example).

1.2 Overriding Feign Defaults

A central concept in Spring Cloud’s Feign support is that of the named client. Each feign client is part of an ensemble of components that work together to contact a remote server on demand, and the ensemble has a name that you give it as an application developer using the @FeignClient annotation. Spring Cloud creates a new ensemble as an +ApplicationContext on demand for each named client using FeignClientsConfiguration. This contains (amongst other things) an feign.Decoder, a feign.Encoder, and a feign.Contract.

Spring Cloud lets you take full control of the feign client by declaring additional configuration (on top of the FeignClientsConfiguration) using @FeignClient. Example:

@FeignClient(name = "stores", configuration = FooConfiguration.class)
+public interface StoreClient {
+    //..
+}

In this case the client is composed from the components already in FeignClientsConfiguration together with any in FooConfiguration (where the latter will override the former).

[Note]Note

FooConfiguration does not need to be annotated with @Configuration. However, if it is, then take care to exclude it from any @ComponentScan that would otherwise include this configuration as it will become the default source for feign.Decoder, feign.Encoder, feign.Contract, etc., when specified. This can be avoided by putting it in a separate, non-overlapping package from any @ComponentScan or @SpringBootApplication, or it can be explicitly excluded in @ComponentScan.

[Note]Note

The serviceId attribute is now deprecated in favor of the name attribute.

[Warning]Warning

Previously, using the url attribute, did not require the name attribute. Using name is now required.

Placeholders are supported in the name and url attributes.

@FeignClient(name = "${feign.name}", url = "${feign.url}")
+public interface StoreClient {
+    //..
+}

Spring Cloud Netflix provides the following beans by default for feign (BeanType beanName: ClassName):

  • Decoder feignDecoder: ResponseEntityDecoder (which wraps a SpringDecoder)
  • Encoder feignEncoder: SpringEncoder
  • Logger feignLogger: Slf4jLogger
  • Contract feignContract: SpringMvcContract
  • Feign.Builder feignBuilder: HystrixFeign.Builder
  • Client feignClient: if Ribbon is enabled it is a LoadBalancerFeignClient, otherwise the default feign client is used.

The OkHttpClient and ApacheHttpClient feign clients can be used by setting feign.okhttp.enabled or feign.httpclient.enabled to true, respectively, and having them on the classpath. +You can customize the HTTP client used by providing a bean of either ClosableHttpClient when using Apache or OkHttpClient whe using OK HTTP.

Spring Cloud Netflix does not provide the following beans by default for feign, but still looks up beans of these types from the application context to create the feign client:

  • Logger.Level
  • Retryer
  • ErrorDecoder
  • Request.Options
  • Collection<RequestInterceptor>
  • SetterFactory

Creating a bean of one of those type and placing it in a @FeignClient configuration (such as FooConfiguration above) allows you to override each one of the beans described. Example:

@Configuration
+public class FooConfiguration {
+    @Bean
+    public Contract feignContract() {
+        return new feign.Contract.Default();
+    }
+
+    @Bean
+    public BasicAuthRequestInterceptor basicAuthRequestInterceptor() {
+        return new BasicAuthRequestInterceptor("user", "password");
+    }
+}

This replaces the SpringMvcContract with feign.Contract.Default and adds a RequestInterceptor to the collection of RequestInterceptor.

@FeignClient also can be configured using configuration properties.

application.yml

feign:
+  client:
+    config:
+      feignName:
+        connectTimeout: 5000
+        readTimeout: 5000
+        loggerLevel: full
+        errorDecoder: com.example.SimpleErrorDecoder
+        retryer: com.example.SimpleRetryer
+        requestInterceptors:
+          - com.example.FooRequestInterceptor
+          - com.example.BarRequestInterceptor
+        decode404: false
+        encoder: com.example.SimpleEncoder
+        decoder: com.example.SimpleDecoder
+        contract: com.example.SimpleContract

Default configurations can be specified in the @EnableFeignClients attribute defaultConfiguration in a similar manner as described above. The difference is that this configuration will apply to all feign clients.

If you prefer using configuration properties to configured all @FeignClient, you can create configuration properties with default feign name.

application.yml

feign:
+  client:
+    config:
+      default:
+        connectTimeout: 5000
+        readTimeout: 5000
+        loggerLevel: basic

If we create both @Configuration bean and configuration properties, configuration properties will win. +It will override @Configuration values. But if you want to change the priority to @Configuration, +you can change feign.client.default-to-properties to false.

[Note]Note

If you need to use ThreadLocal bound variables in your RequestInterceptor`s you will need to either set the +thread isolation strategy for Hystrix to `SEMAPHORE or disable Hystrix in Feign.

application.yml

# To disable Hystrix in Feign
+feign:
+  hystrix:
+    enabled: false
+
+# To set thread isolation to SEMAPHORE
+hystrix:
+  command:
+    default:
+      execution:
+        isolation:
+          strategy: SEMAPHORE

1.3 Creating Feign Clients Manually

In some cases it might be necessary to customize your Feign Clients in a way that is not +possible using the methods above. In this case you can create Clients using the +Feign Builder API. Below is an example +which creates two Feign Clients with the same interface but configures each one with +a separate request interceptor.

@Import(FeignClientsConfiguration.class)
+class FooController {
+
+	private FooClient fooClient;
+
+	private FooClient adminClient;
+
+    	@Autowired
+	public FooController(
+			Decoder decoder, Encoder encoder, Client client, Contract contract) {
+		this.fooClient = Feign.builder().client(client)
+				.encoder(encoder)
+				.decoder(decoder)
+                .contract(contract)
+				.requestInterceptor(new BasicAuthRequestInterceptor("user", "user"))
+				.target(FooClient.class, "http://PROD-SVC");
+		this.adminClient = Feign.builder().client(client)
+				.encoder(encoder)
+				.decoder(decoder)
+				.contract(contract)
+				.requestInterceptor(new BasicAuthRequestInterceptor("admin", "admin"))
+				.target(FooClient.class, "http://PROD-SVC");
+    }
+}
[Note]Note

In the above example FeignClientsConfiguration.class is the default configuration +provided by Spring Cloud Netflix.

[Note]Note

PROD-SVC is the name of the service the Clients will be making requests to.

[Note]Note

The Feign Contract object defines what annotations and values are valid on interfaces. The +autowired Contract bean provides supports for SpringMVC annotations, instead of +the default Feign native annotations.

1.4 Feign Hystrix Support

If Hystrix is on the classpath and feign.hystrix.enabled=true, Feign will wrap all methods with a circuit breaker. Returning a com.netflix.hystrix.HystrixCommand is also available. This lets you use reactive patterns (with a call to .toObservable() or .observe() or asynchronous use (with a call to .queue()).

To disable Hystrix support on a per-client basis create a vanilla Feign.Builder with the "prototype" scope, e.g.:

@Configuration
+public class FooConfiguration {
+    	@Bean
+	@Scope("prototype")
+	public Feign.Builder feignBuilder() {
+		return Feign.builder();
+	}
+}
[Warning]Warning

Prior to the Spring Cloud Dalston release, if Hystrix was on the classpath Feign would have wrapped +all methods in a circuit breaker by default. This default behavior was changed in Spring Cloud Dalston in +favor for an opt-in approach.

1.5 Feign Hystrix Fallbacks

Hystrix supports the notion of a fallback: a default code path that is executed when they circuit is open or there is an error. To enable fallbacks for a given @FeignClient set the fallback attribute to the class name that implements the fallback. You also need to declare your implementation as a Spring bean.

@FeignClient(name = "hello", fallback = HystrixClientFallback.class)
+protected interface HystrixClient {
+    @RequestMapping(method = RequestMethod.GET, value = "/hello")
+    Hello iFailSometimes();
+}
+
+static class HystrixClientFallback implements HystrixClient {
+    @Override
+    public Hello iFailSometimes() {
+        return new Hello("fallback");
+    }
+}

If one needs access to the cause that made the fallback trigger, one can use the fallbackFactory attribute inside @FeignClient.

@FeignClient(name = "hello", fallbackFactory = HystrixClientFallbackFactory.class)
+protected interface HystrixClient {
+	@RequestMapping(method = RequestMethod.GET, value = "/hello")
+	Hello iFailSometimes();
+}
+
+@Component
+static class HystrixClientFallbackFactory implements FallbackFactory<HystrixClient> {
+	@Override
+	public HystrixClient create(Throwable cause) {
+		return new HystrixClient() {
+			@Override
+			public Hello iFailSometimes() {
+				return new Hello("fallback; reason was: " + cause.getMessage());
+			}
+		};
+	}
+}
[Warning]Warning

There is a limitation with the implementation of fallbacks in Feign and how Hystrix fallbacks work. Fallbacks are currently not supported for methods that return com.netflix.hystrix.HystrixCommand and rx.Observable.

1.6 Feign and @Primary

When using Feign with Hystrix fallbacks, there are multiple beans in the ApplicationContext of the same type. This will cause @Autowired to not work because there isn’t exactly one bean, or one marked as primary. To work around this, Spring Cloud Netflix marks all Feign instances as @Primary, so Spring Framework will know which bean to inject. In some cases, this may not be desirable. To turn off this behavior set the primary attribute of @FeignClient to false.

@FeignClient(name = "hello", primary = false)
+public interface HelloClient {
+	// methods here
+}

1.7 Feign Inheritance Support

Feign supports boilerplate apis via single-inheritance interfaces. +This allows grouping common operations into convenient base interfaces.

UserService.java.  +

public interface UserService {
+
+    @RequestMapping(method = RequestMethod.GET, value ="/users/{id}")
+    User getUser(@PathVariable("id") long id);
+}

+

UserResource.java.  +

@RestController
+public class UserResource implements UserService {
+
+}

+

UserClient.java.  +

package project.user;
+
+@FeignClient("users")
+public interface UserClient extends UserService {
+
+}

+

[Note]Note

It is generally not advisable to share an interface between a +server and a client. It introduces tight coupling, and also actually +doesn’t work with Spring MVC in its current form (method parameter +mapping is not inherited).

1.8 Feign request/response compression

You may consider enabling the request or response GZIP compression for your +Feign requests. You can do this by enabling one of the properties:

feign.compression.request.enabled=true
+feign.compression.response.enabled=true

Feign request compression gives you settings similar to what you may set for your web server:

feign.compression.request.enabled=true
+feign.compression.request.mime-types=text/xml,application/xml,application/json
+feign.compression.request.min-request-size=2048

These properties allow you to be selective about the compressed media types and minimum request threshold length.

1.9 Feign logging

A logger is created for each Feign client created. By default the name of the logger is the full class name of the interface used to create the Feign client. Feign logging only responds to the DEBUG level.

application.yml.  +

logging.level.project.user.UserClient: DEBUG

+

The Logger.Level object that you may configure per client, tells Feign how much to log. Choices are:

  • NONE, No logging (DEFAULT).
  • BASIC, Log only the request method and URL and the response status code and execution time.
  • HEADERS, Log the basic information along with request and response headers.
  • FULL, Log the headers, body, and metadata for both requests and responses.

For example, the following would set the Logger.Level to FULL:

@Configuration
+public class FooConfiguration {
+    @Bean
+    Logger.Level feignLoggerLevel() {
+        return Logger.Level.FULL;
+    }
+}
        OtherClass.someMethod(myprop.get());
+    }
+}
+stripped). The proxy uses Ribbon to locate an instance to forward to
+via discovery, and all requests are executed in a
+<<hystrix-fallbacks-for-routes, hystrix command>>, so
+failures will show up in Hystrix metrics, and once the circuit is open
+the proxy will not try to contact the service.
\ No newline at end of file diff --git a/docs/target/generated-docs/multi/multi_spring-cloud-openfeign.html b/docs/target/generated-docs/multi/multi_spring-cloud-openfeign.html new file mode 100644 index 00000000..656ec8ad --- /dev/null +++ b/docs/target/generated-docs/multi/multi_spring-cloud-openfeign.html @@ -0,0 +1,3 @@ + + + Spring Cloud OpenFeign \ No newline at end of file diff --git a/docs/target/generated-docs/single/css/highlight.css b/docs/target/generated-docs/single/css/highlight.css new file mode 100644 index 00000000..ffefef72 --- /dev/null +++ b/docs/target/generated-docs/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/docs/target/generated-docs/single/css/manual-multipage.css b/docs/target/generated-docs/single/css/manual-multipage.css new file mode 100644 index 00000000..0c484531 --- /dev/null +++ b/docs/target/generated-docs/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/docs/target/generated-docs/single/css/manual-singlepage.css b/docs/target/generated-docs/single/css/manual-singlepage.css new file mode 100644 index 00000000..4a7fd140 --- /dev/null +++ b/docs/target/generated-docs/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/docs/target/generated-docs/single/css/manual.css b/docs/target/generated-docs/single/css/manual.css new file mode 100644 index 00000000..0ecbe2e8 --- /dev/null +++ b/docs/target/generated-docs/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/docs/target/generated-docs/single/images/background.png b/docs/target/generated-docs/single/images/background.png new file mode 100644 index 00000000..15dca6fb Binary files /dev/null and b/docs/target/generated-docs/single/images/background.png differ diff --git a/docs/target/generated-docs/single/images/caution.png b/docs/target/generated-docs/single/images/caution.png new file mode 100644 index 00000000..8a5e4fca Binary files /dev/null and b/docs/target/generated-docs/single/images/caution.png differ diff --git a/docs/target/generated-docs/single/images/important.png b/docs/target/generated-docs/single/images/important.png new file mode 100644 index 00000000..ec54df65 Binary files /dev/null and b/docs/target/generated-docs/single/images/important.png differ diff --git a/docs/target/generated-docs/single/images/logo.png b/docs/target/generated-docs/single/images/logo.png new file mode 100644 index 00000000..ade2ce6e Binary files /dev/null and b/docs/target/generated-docs/single/images/logo.png differ diff --git a/docs/target/generated-docs/single/images/note.png b/docs/target/generated-docs/single/images/note.png new file mode 100644 index 00000000..88d997b1 Binary files /dev/null and b/docs/target/generated-docs/single/images/note.png differ diff --git a/docs/target/generated-docs/single/images/sts_exception.png b/docs/target/generated-docs/single/images/sts_exception.png new file mode 100644 index 00000000..8607c38a Binary files /dev/null and b/docs/target/generated-docs/single/images/sts_exception.png differ diff --git a/docs/target/generated-docs/single/images/tip.png b/docs/target/generated-docs/single/images/tip.png new file mode 100644 index 00000000..6530abb4 Binary files /dev/null and b/docs/target/generated-docs/single/images/tip.png differ diff --git a/docs/target/generated-docs/single/images/warning.png b/docs/target/generated-docs/single/images/warning.png new file mode 100644 index 00000000..0d5b5244 Binary files /dev/null and b/docs/target/generated-docs/single/images/warning.png differ diff --git a/docs/target/generated-docs/single/images/web-selected.png b/docs/target/generated-docs/single/images/web-selected.png new file mode 100644 index 00000000..aa6b2da6 Binary files /dev/null and b/docs/target/generated-docs/single/images/web-selected.png differ diff --git a/docs/target/generated-docs/single/spring-cloud-openfeign.html b/docs/target/generated-docs/single/spring-cloud-openfeign.html new file mode 100644 index 00000000..ab902387 --- /dev/null +++ b/docs/target/generated-docs/single/spring-cloud-openfeign.html @@ -0,0 +1,200 @@ + + + Spring Cloud OpenFeign

Spring Cloud OpenFeign


2.0.0.BUILD-SNAPSHOT

This project provides OpenFeign integrations for Spring Boot apps through autoconfiguration +and binding to the Spring Environment and other Spring programming model idioms.

1. Declarative REST Client: Feign

Feign is a declarative web service client. It makes writing web service clients easier. To use Feign create an interface and annotate it. It has pluggable annotation support including Feign annotations and JAX-RS annotations. Feign also supports pluggable encoders and decoders. Spring Cloud adds support for Spring MVC annotations and for using the same HttpMessageConverters used by default in Spring Web. Spring Cloud integrates Ribbon and Eureka to provide a load balanced http client when using Feign.

1.1 How to Include Feign

To include Feign in your project use the starter with group org.springframework.cloud +and artifact id spring-cloud-starter-openfeign. See the Spring Cloud Project page +for details on setting up your build system with the current Spring Cloud Release Train.

Example spring boot app

@SpringBootApplication
+@EnableFeignClients
+public class Application {
+
+    public static void main(String[] args) {
+        SpringApplication.run(Application.class, args);
+    }
+
+}

StoreClient.java.  +

@FeignClient("stores")
+public interface StoreClient {
+    @RequestMapping(method = RequestMethod.GET, value = "/stores")
+    List<Store> getStores();
+
+    @RequestMapping(method = RequestMethod.POST, value = "/stores/{storeId}", consumes = "application/json")
+    Store update(@PathVariable("storeId") Long storeId, Store store);
+}

+

In the @FeignClient annotation the String value ("stores" above) is +an arbitrary client name, which is used to create a Ribbon load +balancer (see below for details of Ribbon +support). You can also specify a URL using the url attribute +(absolute value or just a hostname). The name of the bean in the +application context is the fully qualified name of the interface. +To specify your own alias value you can use the qualifier value +of the @FeignClient annotation.

The Ribbon client above will want to discover the physical addresses +for the "stores" service. If your application is a Eureka client then +it will resolve the service in the Eureka service registry. If you +don’t want to use Eureka, you can simply configure a list of servers +in your external configuration (see +above for example).

1.2 Overriding Feign Defaults

A central concept in Spring Cloud’s Feign support is that of the named client. Each feign client is part of an ensemble of components that work together to contact a remote server on demand, and the ensemble has a name that you give it as an application developer using the @FeignClient annotation. Spring Cloud creates a new ensemble as an +ApplicationContext on demand for each named client using FeignClientsConfiguration. This contains (amongst other things) an feign.Decoder, a feign.Encoder, and a feign.Contract.

Spring Cloud lets you take full control of the feign client by declaring additional configuration (on top of the FeignClientsConfiguration) using @FeignClient. Example:

@FeignClient(name = "stores", configuration = FooConfiguration.class)
+public interface StoreClient {
+    //..
+}

In this case the client is composed from the components already in FeignClientsConfiguration together with any in FooConfiguration (where the latter will override the former).

[Note]Note

FooConfiguration does not need to be annotated with @Configuration. However, if it is, then take care to exclude it from any @ComponentScan that would otherwise include this configuration as it will become the default source for feign.Decoder, feign.Encoder, feign.Contract, etc., when specified. This can be avoided by putting it in a separate, non-overlapping package from any @ComponentScan or @SpringBootApplication, or it can be explicitly excluded in @ComponentScan.

[Note]Note

The serviceId attribute is now deprecated in favor of the name attribute.

[Warning]Warning

Previously, using the url attribute, did not require the name attribute. Using name is now required.

Placeholders are supported in the name and url attributes.

@FeignClient(name = "${feign.name}", url = "${feign.url}")
+public interface StoreClient {
+    //..
+}

Spring Cloud Netflix provides the following beans by default for feign (BeanType beanName: ClassName):

  • Decoder feignDecoder: ResponseEntityDecoder (which wraps a SpringDecoder)
  • Encoder feignEncoder: SpringEncoder
  • Logger feignLogger: Slf4jLogger
  • Contract feignContract: SpringMvcContract
  • Feign.Builder feignBuilder: HystrixFeign.Builder
  • Client feignClient: if Ribbon is enabled it is a LoadBalancerFeignClient, otherwise the default feign client is used.

The OkHttpClient and ApacheHttpClient feign clients can be used by setting feign.okhttp.enabled or feign.httpclient.enabled to true, respectively, and having them on the classpath. +You can customize the HTTP client used by providing a bean of either ClosableHttpClient when using Apache or OkHttpClient whe using OK HTTP.

Spring Cloud Netflix does not provide the following beans by default for feign, but still looks up beans of these types from the application context to create the feign client:

  • Logger.Level
  • Retryer
  • ErrorDecoder
  • Request.Options
  • Collection<RequestInterceptor>
  • SetterFactory

Creating a bean of one of those type and placing it in a @FeignClient configuration (such as FooConfiguration above) allows you to override each one of the beans described. Example:

@Configuration
+public class FooConfiguration {
+    @Bean
+    public Contract feignContract() {
+        return new feign.Contract.Default();
+    }
+
+    @Bean
+    public BasicAuthRequestInterceptor basicAuthRequestInterceptor() {
+        return new BasicAuthRequestInterceptor("user", "password");
+    }
+}

This replaces the SpringMvcContract with feign.Contract.Default and adds a RequestInterceptor to the collection of RequestInterceptor.

@FeignClient also can be configured using configuration properties.

application.yml

feign:
+  client:
+    config:
+      feignName:
+        connectTimeout: 5000
+        readTimeout: 5000
+        loggerLevel: full
+        errorDecoder: com.example.SimpleErrorDecoder
+        retryer: com.example.SimpleRetryer
+        requestInterceptors:
+          - com.example.FooRequestInterceptor
+          - com.example.BarRequestInterceptor
+        decode404: false
+        encoder: com.example.SimpleEncoder
+        decoder: com.example.SimpleDecoder
+        contract: com.example.SimpleContract

Default configurations can be specified in the @EnableFeignClients attribute defaultConfiguration in a similar manner as described above. The difference is that this configuration will apply to all feign clients.

If you prefer using configuration properties to configured all @FeignClient, you can create configuration properties with default feign name.

application.yml

feign:
+  client:
+    config:
+      default:
+        connectTimeout: 5000
+        readTimeout: 5000
+        loggerLevel: basic

If we create both @Configuration bean and configuration properties, configuration properties will win. +It will override @Configuration values. But if you want to change the priority to @Configuration, +you can change feign.client.default-to-properties to false.

[Note]Note

If you need to use ThreadLocal bound variables in your RequestInterceptor`s you will need to either set the +thread isolation strategy for Hystrix to `SEMAPHORE or disable Hystrix in Feign.

application.yml

# To disable Hystrix in Feign
+feign:
+  hystrix:
+    enabled: false
+
+# To set thread isolation to SEMAPHORE
+hystrix:
+  command:
+    default:
+      execution:
+        isolation:
+          strategy: SEMAPHORE

1.3 Creating Feign Clients Manually

In some cases it might be necessary to customize your Feign Clients in a way that is not +possible using the methods above. In this case you can create Clients using the +Feign Builder API. Below is an example +which creates two Feign Clients with the same interface but configures each one with +a separate request interceptor.

@Import(FeignClientsConfiguration.class)
+class FooController {
+
+	private FooClient fooClient;
+
+	private FooClient adminClient;
+
+    	@Autowired
+	public FooController(
+			Decoder decoder, Encoder encoder, Client client, Contract contract) {
+		this.fooClient = Feign.builder().client(client)
+				.encoder(encoder)
+				.decoder(decoder)
+                .contract(contract)
+				.requestInterceptor(new BasicAuthRequestInterceptor("user", "user"))
+				.target(FooClient.class, "http://PROD-SVC");
+		this.adminClient = Feign.builder().client(client)
+				.encoder(encoder)
+				.decoder(decoder)
+				.contract(contract)
+				.requestInterceptor(new BasicAuthRequestInterceptor("admin", "admin"))
+				.target(FooClient.class, "http://PROD-SVC");
+    }
+}
[Note]Note

In the above example FeignClientsConfiguration.class is the default configuration +provided by Spring Cloud Netflix.

[Note]Note

PROD-SVC is the name of the service the Clients will be making requests to.

[Note]Note

The Feign Contract object defines what annotations and values are valid on interfaces. The +autowired Contract bean provides supports for SpringMVC annotations, instead of +the default Feign native annotations.

1.4 Feign Hystrix Support

If Hystrix is on the classpath and feign.hystrix.enabled=true, Feign will wrap all methods with a circuit breaker. Returning a com.netflix.hystrix.HystrixCommand is also available. This lets you use reactive patterns (with a call to .toObservable() or .observe() or asynchronous use (with a call to .queue()).

To disable Hystrix support on a per-client basis create a vanilla Feign.Builder with the "prototype" scope, e.g.:

@Configuration
+public class FooConfiguration {
+    	@Bean
+	@Scope("prototype")
+	public Feign.Builder feignBuilder() {
+		return Feign.builder();
+	}
+}
[Warning]Warning

Prior to the Spring Cloud Dalston release, if Hystrix was on the classpath Feign would have wrapped +all methods in a circuit breaker by default. This default behavior was changed in Spring Cloud Dalston in +favor for an opt-in approach.

1.5 Feign Hystrix Fallbacks

Hystrix supports the notion of a fallback: a default code path that is executed when they circuit is open or there is an error. To enable fallbacks for a given @FeignClient set the fallback attribute to the class name that implements the fallback. You also need to declare your implementation as a Spring bean.

@FeignClient(name = "hello", fallback = HystrixClientFallback.class)
+protected interface HystrixClient {
+    @RequestMapping(method = RequestMethod.GET, value = "/hello")
+    Hello iFailSometimes();
+}
+
+static class HystrixClientFallback implements HystrixClient {
+    @Override
+    public Hello iFailSometimes() {
+        return new Hello("fallback");
+    }
+}

If one needs access to the cause that made the fallback trigger, one can use the fallbackFactory attribute inside @FeignClient.

@FeignClient(name = "hello", fallbackFactory = HystrixClientFallbackFactory.class)
+protected interface HystrixClient {
+	@RequestMapping(method = RequestMethod.GET, value = "/hello")
+	Hello iFailSometimes();
+}
+
+@Component
+static class HystrixClientFallbackFactory implements FallbackFactory<HystrixClient> {
+	@Override
+	public HystrixClient create(Throwable cause) {
+		return new HystrixClient() {
+			@Override
+			public Hello iFailSometimes() {
+				return new Hello("fallback; reason was: " + cause.getMessage());
+			}
+		};
+	}
+}
[Warning]Warning

There is a limitation with the implementation of fallbacks in Feign and how Hystrix fallbacks work. Fallbacks are currently not supported for methods that return com.netflix.hystrix.HystrixCommand and rx.Observable.

1.6 Feign and @Primary

When using Feign with Hystrix fallbacks, there are multiple beans in the ApplicationContext of the same type. This will cause @Autowired to not work because there isn’t exactly one bean, or one marked as primary. To work around this, Spring Cloud Netflix marks all Feign instances as @Primary, so Spring Framework will know which bean to inject. In some cases, this may not be desirable. To turn off this behavior set the primary attribute of @FeignClient to false.

@FeignClient(name = "hello", primary = false)
+public interface HelloClient {
+	// methods here
+}

1.7 Feign Inheritance Support

Feign supports boilerplate apis via single-inheritance interfaces. +This allows grouping common operations into convenient base interfaces.

UserService.java.  +

public interface UserService {
+
+    @RequestMapping(method = RequestMethod.GET, value ="/users/{id}")
+    User getUser(@PathVariable("id") long id);
+}

+

UserResource.java.  +

@RestController
+public class UserResource implements UserService {
+
+}

+

UserClient.java.  +

package project.user;
+
+@FeignClient("users")
+public interface UserClient extends UserService {
+
+}

+

[Note]Note

It is generally not advisable to share an interface between a +server and a client. It introduces tight coupling, and also actually +doesn’t work with Spring MVC in its current form (method parameter +mapping is not inherited).

1.8 Feign request/response compression

You may consider enabling the request or response GZIP compression for your +Feign requests. You can do this by enabling one of the properties:

feign.compression.request.enabled=true
+feign.compression.response.enabled=true

Feign request compression gives you settings similar to what you may set for your web server:

feign.compression.request.enabled=true
+feign.compression.request.mime-types=text/xml,application/xml,application/json
+feign.compression.request.min-request-size=2048

These properties allow you to be selective about the compressed media types and minimum request threshold length.

1.9 Feign logging

A logger is created for each Feign client created. By default the name of the logger is the full class name of the interface used to create the Feign client. Feign logging only responds to the DEBUG level.

application.yml.  +

logging.level.project.user.UserClient: DEBUG

+

The Logger.Level object that you may configure per client, tells Feign how much to log. Choices are:

  • NONE, No logging (DEFAULT).
  • BASIC, Log only the request method and URL and the response status code and execution time.
  • HEADERS, Log the basic information along with request and response headers.
  • FULL, Log the headers, body, and metadata for both requests and responses.

For example, the following would set the Logger.Level to FULL:

@Configuration
+public class FooConfiguration {
+    @Bean
+    Logger.Level feignLoggerLevel() {
+        return Logger.Level.FULL;
+    }
+}
        OtherClass.someMethod(myprop.get());
+    }
+}
+stripped). The proxy uses Ribbon to locate an instance to forward to
+via discovery, and all requests are executed in a
+<<hystrix-fallbacks-for-routes, hystrix command>>, so
+failures will show up in Hystrix metrics, and once the circuit is open
+the proxy will not try to contact the service.
\ No newline at end of file diff --git a/docs/target/generated-docs/spring-cloud-openfeign.html b/docs/target/generated-docs/spring-cloud-openfeign.html new file mode 100644 index 00000000..39a0e2ac --- /dev/null +++ b/docs/target/generated-docs/spring-cloud-openfeign.html @@ -0,0 +1,117 @@ + + + + + + + +spring-cloud-openfeign + + + + + + + + +
+
+
+
+

2.0.0.BUILD-SNAPSHOT

+
+
+
+
+

Pick The Documentation Option

+
+
+ +
+
+
+
+ + + + + \ No newline at end of file diff --git a/docs/target/generated-docs/spring-cloud-openfeign.xml b/docs/target/generated-docs/spring-cloud-openfeign.xml new file mode 100644 index 00000000..abd08d14 --- /dev/null +++ b/docs/target/generated-docs/spring-cloud-openfeign.xml @@ -0,0 +1,395 @@ + + + + + +Spring Cloud OpenFeign +2018-03-09 + + + +2.0.0.BUILD-SNAPSHOT +This project provides OpenFeign integrations for Spring Boot apps through autoconfiguration +and binding to the Spring Environment and other Spring programming model idioms. + + +Declarative REST Client: Feign +Feign is a declarative web service client. It makes writing web service clients easier. To use Feign create an interface and annotate it. It has pluggable annotation support including Feign annotations and JAX-RS annotations. Feign also supports pluggable encoders and decoders. Spring Cloud adds support for Spring MVC annotations and for using the same HttpMessageConverters used by default in Spring Web. Spring Cloud integrates Ribbon and Eureka to provide a load balanced http client when using Feign. +
+How to Include Feign +To include Feign in your project use the starter with group org.springframework.cloud +and artifact id spring-cloud-starter-openfeign. See the Spring Cloud Project page +for details on setting up your build system with the current Spring Cloud Release Train. +Example spring boot app +@SpringBootApplication +@EnableFeignClients +public class Application { + + public static void main(String[] args) { + SpringApplication.run(Application.class, args); + } + +} + +StoreClient.java + +@FeignClient("stores") +public interface StoreClient { + @RequestMapping(method = RequestMethod.GET, value = "/stores") + List<Store> getStores(); + + @RequestMapping(method = RequestMethod.POST, value = "/stores/{storeId}", consumes = "application/json") + Store update(@PathVariable("storeId") Long storeId, Store store); +} + + +In the @FeignClient annotation the String value ("stores" above) is +an arbitrary client name, which is used to create a Ribbon load +balancer (see below for details of Ribbon +support). You can also specify a URL using the url attribute +(absolute value or just a hostname). The name of the bean in the +application context is the fully qualified name of the interface. +To specify your own alias value you can use the qualifier value +of the @FeignClient annotation. +The Ribbon client above will want to discover the physical addresses +for the "stores" service. If your application is a Eureka client then +it will resolve the service in the Eureka service registry. If you +don’t want to use Eureka, you can simply configure a list of servers +in your external configuration (see +above for example). +
+
+Overriding Feign Defaults +A central concept in Spring Cloud’s Feign support is that of the named client. Each feign client is part of an ensemble of components that work together to contact a remote server on demand, and the ensemble has a name that you give it as an application developer using the @FeignClient annotation. Spring Cloud creates a new ensemble as an +ApplicationContext on demand for each named client using FeignClientsConfiguration. This contains (amongst other things) an feign.Decoder, a feign.Encoder, and a feign.Contract. +Spring Cloud lets you take full control of the feign client by declaring additional configuration (on top of the FeignClientsConfiguration) using @FeignClient. Example: +@FeignClient(name = "stores", configuration = FooConfiguration.class) +public interface StoreClient { + //.. +} +In this case the client is composed from the components already in FeignClientsConfiguration together with any in FooConfiguration (where the latter will override the former). + +FooConfiguration does not need to be annotated with @Configuration. However, if it is, then take care to exclude it from any @ComponentScan that would otherwise include this configuration as it will become the default source for feign.Decoder, feign.Encoder, feign.Contract, etc., when specified. This can be avoided by putting it in a separate, non-overlapping package from any @ComponentScan or @SpringBootApplication, or it can be explicitly excluded in @ComponentScan. + + +The serviceId attribute is now deprecated in favor of the name attribute. + + +Previously, using the url attribute, did not require the name attribute. Using name is now required. + +Placeholders are supported in the name and url attributes. +@FeignClient(name = "${feign.name}", url = "${feign.url}") +public interface StoreClient { + //.. +} +Spring Cloud Netflix provides the following beans by default for feign (BeanType beanName: ClassName): + + +Decoder feignDecoder: ResponseEntityDecoder (which wraps a SpringDecoder) + + +Encoder feignEncoder: SpringEncoder + + +Logger feignLogger: Slf4jLogger + + +Contract feignContract: SpringMvcContract + + +Feign.Builder feignBuilder: HystrixFeign.Builder + + +Client feignClient: if Ribbon is enabled it is a LoadBalancerFeignClient, otherwise the default feign client is used. + + +The OkHttpClient and ApacheHttpClient feign clients can be used by setting feign.okhttp.enabled or feign.httpclient.enabled to true, respectively, and having them on the classpath. +You can customize the HTTP client used by providing a bean of either ClosableHttpClient when using Apache or OkHttpClient whe using OK HTTP. +Spring Cloud Netflix does not provide the following beans by default for feign, but still looks up beans of these types from the application context to create the feign client: + + +Logger.Level + + +Retryer + + +ErrorDecoder + + +Request.Options + + +Collection<RequestInterceptor> + + +SetterFactory + + +Creating a bean of one of those type and placing it in a @FeignClient configuration (such as FooConfiguration above) allows you to override each one of the beans described. Example: +@Configuration +public class FooConfiguration { + @Bean + public Contract feignContract() { + return new feign.Contract.Default(); + } + + @Bean + public BasicAuthRequestInterceptor basicAuthRequestInterceptor() { + return new BasicAuthRequestInterceptor("user", "password"); + } +} +This replaces the SpringMvcContract with feign.Contract.Default and adds a RequestInterceptor to the collection of RequestInterceptor. +@FeignClient also can be configured using configuration properties. +application.yml +feign: + client: + config: + feignName: + connectTimeout: 5000 + readTimeout: 5000 + loggerLevel: full + errorDecoder: com.example.SimpleErrorDecoder + retryer: com.example.SimpleRetryer + requestInterceptors: + - com.example.FooRequestInterceptor + - com.example.BarRequestInterceptor + decode404: false + encoder: com.example.SimpleEncoder + decoder: com.example.SimpleDecoder + contract: com.example.SimpleContract +Default configurations can be specified in the @EnableFeignClients attribute defaultConfiguration in a similar manner as described above. The difference is that this configuration will apply to all feign clients. +If you prefer using configuration properties to configured all @FeignClient, you can create configuration properties with default feign name. +application.yml +feign: + client: + config: + default: + connectTimeout: 5000 + readTimeout: 5000 + loggerLevel: basic +If we create both @Configuration bean and configuration properties, configuration properties will win. +It will override @Configuration values. But if you want to change the priority to @Configuration, +you can change feign.client.default-to-properties to false. + +If you need to use ThreadLocal bound variables in your RequestInterceptor`s you will need to either set the +thread isolation strategy for Hystrix to `SEMAPHORE or disable Hystrix in Feign. + +application.yml +# To disable Hystrix in Feign +feign: + hystrix: + enabled: false + +# To set thread isolation to SEMAPHORE +hystrix: + command: + default: + execution: + isolation: + strategy: SEMAPHORE +
+
+Creating Feign Clients Manually +In some cases it might be necessary to customize your Feign Clients in a way that is not +possible using the methods above. In this case you can create Clients using the +Feign Builder API. Below is an example +which creates two Feign Clients with the same interface but configures each one with +a separate request interceptor. +@Import(FeignClientsConfiguration.class) +class FooController { + + private FooClient fooClient; + + private FooClient adminClient; + + @Autowired + public FooController( + Decoder decoder, Encoder encoder, Client client, Contract contract) { + this.fooClient = Feign.builder().client(client) + .encoder(encoder) + .decoder(decoder) + .contract(contract) + .requestInterceptor(new BasicAuthRequestInterceptor("user", "user")) + .target(FooClient.class, "http://PROD-SVC"); + this.adminClient = Feign.builder().client(client) + .encoder(encoder) + .decoder(decoder) + .contract(contract) + .requestInterceptor(new BasicAuthRequestInterceptor("admin", "admin")) + .target(FooClient.class, "http://PROD-SVC"); + } +} + +In the above example FeignClientsConfiguration.class is the default configuration +provided by Spring Cloud Netflix. + + +PROD-SVC is the name of the service the Clients will be making requests to. + + +The Feign Contract object defines what annotations and values are valid on interfaces. The +autowired Contract bean provides supports for SpringMVC annotations, instead of +the default Feign native annotations. + +
+
+Feign Hystrix Support +If Hystrix is on the classpath and feign.hystrix.enabled=true, Feign will wrap all methods with a circuit breaker. Returning a com.netflix.hystrix.HystrixCommand is also available. This lets you use reactive patterns (with a call to .toObservable() or .observe() or asynchronous use (with a call to .queue()). +To disable Hystrix support on a per-client basis create a vanilla Feign.Builder with the "prototype" scope, e.g.: +@Configuration +public class FooConfiguration { + @Bean + @Scope("prototype") + public Feign.Builder feignBuilder() { + return Feign.builder(); + } +} + +Prior to the Spring Cloud Dalston release, if Hystrix was on the classpath Feign would have wrapped +all methods in a circuit breaker by default. This default behavior was changed in Spring Cloud Dalston in +favor for an opt-in approach. + +
+
+Feign Hystrix Fallbacks +Hystrix supports the notion of a fallback: a default code path that is executed when they circuit is open or there is an error. To enable fallbacks for a given @FeignClient set the fallback attribute to the class name that implements the fallback. You also need to declare your implementation as a Spring bean. +@FeignClient(name = "hello", fallback = HystrixClientFallback.class) +protected interface HystrixClient { + @RequestMapping(method = RequestMethod.GET, value = "/hello") + Hello iFailSometimes(); +} + +static class HystrixClientFallback implements HystrixClient { + @Override + public Hello iFailSometimes() { + return new Hello("fallback"); + } +} +If one needs access to the cause that made the fallback trigger, one can use the fallbackFactory attribute inside @FeignClient. +@FeignClient(name = "hello", fallbackFactory = HystrixClientFallbackFactory.class) +protected interface HystrixClient { + @RequestMapping(method = RequestMethod.GET, value = "/hello") + Hello iFailSometimes(); +} + +@Component +static class HystrixClientFallbackFactory implements FallbackFactory<HystrixClient> { + @Override + public HystrixClient create(Throwable cause) { + return new HystrixClient() { + @Override + public Hello iFailSometimes() { + return new Hello("fallback; reason was: " + cause.getMessage()); + } + }; + } +} + +There is a limitation with the implementation of fallbacks in Feign and how Hystrix fallbacks work. Fallbacks are currently not supported for methods that return com.netflix.hystrix.HystrixCommand and rx.Observable. + +
+
+Feign and <literal>@Primary</literal> +When using Feign with Hystrix fallbacks, there are multiple beans in the ApplicationContext of the same type. This will cause @Autowired to not work because there isn’t exactly one bean, or one marked as primary. To work around this, Spring Cloud Netflix marks all Feign instances as @Primary, so Spring Framework will know which bean to inject. In some cases, this may not be desirable. To turn off this behavior set the primary attribute of @FeignClient to false. +@FeignClient(name = "hello", primary = false) +public interface HelloClient { + // methods here +} +
+
+Feign Inheritance Support +Feign supports boilerplate apis via single-inheritance interfaces. +This allows grouping common operations into convenient base interfaces. + +UserService.java + +public interface UserService { + + @RequestMapping(method = RequestMethod.GET, value ="/users/{id}") + User getUser(@PathVariable("id") long id); +} + + + +UserResource.java + +@RestController +public class UserResource implements UserService { + +} + + + +UserClient.java + +package project.user; + +@FeignClient("users") +public interface UserClient extends UserService { + +} + + + +It is generally not advisable to share an interface between a +server and a client. It introduces tight coupling, and also actually +doesn’t work with Spring MVC in its current form (method parameter +mapping is not inherited). + +
+
+Feign request/response compression +You may consider enabling the request or response GZIP compression for your +Feign requests. You can do this by enabling one of the properties: +feign.compression.request.enabled=true +feign.compression.response.enabled=true +Feign request compression gives you settings similar to what you may set for your web server: +feign.compression.request.enabled=true +feign.compression.request.mime-types=text/xml,application/xml,application/json +feign.compression.request.min-request-size=2048 +These properties allow you to be selective about the compressed media types and minimum request threshold length. +
+
+Feign logging +A logger is created for each Feign client created. By default the name of the logger is the full class name of the interface used to create the Feign client. Feign logging only responds to the DEBUG level. + +application.yml + +logging.level.project.user.UserClient: DEBUG + + +The Logger.Level object that you may configure per client, tells Feign how much to log. Choices are: + + +NONE, No logging (DEFAULT). + + +BASIC, Log only the request method and URL and the response status code and execution time. + + +HEADERS, Log the basic information along with request and response headers. + + +FULL, Log the headers, body, and metadata for both requests and responses. + + +For example, the following would set the Logger.Level to FULL: +@Configuration +public class FooConfiguration { + @Bean + Logger.Level feignLoggerLevel() { + return Logger.Level.FULL; + } +} + OtherClass.someMethod(myprop.get()); + } +} +stripped). The proxy uses Ribbon to locate an instance to forward to +via discovery, and all requests are executed in a +<<hystrix-fallbacks-for-routes, hystrix command>>, so +failures will show up in Hystrix metrics, and once the circuit is open +the proxy will not try to contact the service. +
+
+
\ No newline at end of file diff --git a/docs/target/generated-index/spring-cloud-openfeign.adoc b/docs/target/generated-index/spring-cloud-openfeign.adoc new file mode 100644 index 00000000..e06b1723 --- /dev/null +++ b/docs/target/generated-index/spring-cloud-openfeign.adoc @@ -0,0 +1,13 @@ +:nofooter: +:linkcss: +:stylesdir: css +:stylesheet: manual-singlepage.css + += {docs-main} + +{spring-cloud-version} + +== Pick The Documentation Option + +- link:single/{docs-main}.html[Single HTML] +- link:multi/multi_{docs-main}.html[Multi HTML] \ No newline at end of file diff --git a/ghpages.sh b/ghpages.sh new file mode 100644 index 00000000..57c5da3a --- /dev/null +++ b/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 + # http://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}]" + # http://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/images/background.png b/images/background.png new file mode 100644 index 00000000..15dca6fb Binary files /dev/null and b/images/background.png differ diff --git a/images/caution.png b/images/caution.png new file mode 100644 index 00000000..8a5e4fca Binary files /dev/null and b/images/caution.png differ diff --git a/images/important.png b/images/important.png new file mode 100644 index 00000000..ec54df65 Binary files /dev/null and b/images/important.png differ diff --git a/images/logo.png b/images/logo.png new file mode 100644 index 00000000..ade2ce6e Binary files /dev/null and b/images/logo.png differ diff --git a/images/note.png b/images/note.png new file mode 100644 index 00000000..88d997b1 Binary files /dev/null and b/images/note.png differ diff --git a/images/sts_exception.png b/images/sts_exception.png new file mode 100644 index 00000000..8607c38a Binary files /dev/null and b/images/sts_exception.png differ diff --git a/images/tip.png b/images/tip.png new file mode 100644 index 00000000..6530abb4 Binary files /dev/null and b/images/tip.png differ diff --git a/images/warning.png b/images/warning.png new file mode 100644 index 00000000..0d5b5244 Binary files /dev/null and b/images/warning.png differ diff --git a/images/web-selected.png b/images/web-selected.png new file mode 100644 index 00000000..aa6b2da6 Binary files /dev/null and b/images/web-selected.png differ diff --git a/multi/css/highlight.css b/multi/css/highlight.css new file mode 100644 index 00000000..ffefef72 --- /dev/null +++ b/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/multi/css/manual-multipage.css b/multi/css/manual-multipage.css new file mode 100644 index 00000000..0c484531 --- /dev/null +++ b/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/multi/css/manual-singlepage.css b/multi/css/manual-singlepage.css new file mode 100644 index 00000000..4a7fd140 --- /dev/null +++ b/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/multi/css/manual.css b/multi/css/manual.css new file mode 100644 index 00000000..0ecbe2e8 --- /dev/null +++ b/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/multi/images/background.png b/multi/images/background.png new file mode 100644 index 00000000..15dca6fb Binary files /dev/null and b/multi/images/background.png differ diff --git a/multi/images/caution.png b/multi/images/caution.png new file mode 100644 index 00000000..8a5e4fca Binary files /dev/null and b/multi/images/caution.png differ diff --git a/multi/images/important.png b/multi/images/important.png new file mode 100644 index 00000000..ec54df65 Binary files /dev/null and b/multi/images/important.png differ diff --git a/multi/images/logo.png b/multi/images/logo.png new file mode 100644 index 00000000..ade2ce6e Binary files /dev/null and b/multi/images/logo.png differ diff --git a/multi/images/note.png b/multi/images/note.png new file mode 100644 index 00000000..88d997b1 Binary files /dev/null and b/multi/images/note.png differ diff --git a/multi/images/sts_exception.png b/multi/images/sts_exception.png new file mode 100644 index 00000000..8607c38a Binary files /dev/null and b/multi/images/sts_exception.png differ diff --git a/multi/images/tip.png b/multi/images/tip.png new file mode 100644 index 00000000..6530abb4 Binary files /dev/null and b/multi/images/tip.png differ diff --git a/multi/images/warning.png b/multi/images/warning.png new file mode 100644 index 00000000..0d5b5244 Binary files /dev/null and b/multi/images/warning.png differ diff --git a/multi/images/web-selected.png b/multi/images/web-selected.png new file mode 100644 index 00000000..aa6b2da6 Binary files /dev/null and b/multi/images/web-selected.png differ diff --git a/multi/multi_pr01.html b/multi/multi_pr01.html new file mode 100644 index 00000000..6a1f3696 --- /dev/null +++ b/multi/multi_pr01.html @@ -0,0 +1,4 @@ + + +

2.0.0.BUILD-SNAPSHOT

This project provides OpenFeign integrations for Spring Boot apps through autoconfiguration +and binding to the Spring Environment and other Spring programming model idioms.

\ No newline at end of file diff --git a/multi/multi_spring-cloud-feign.html b/multi/multi_spring-cloud-feign.html new file mode 100644 index 00000000..26bb061d --- /dev/null +++ b/multi/multi_spring-cloud-feign.html @@ -0,0 +1,199 @@ + + + 1. Declarative REST Client: Feign

1. Declarative REST Client: Feign

Feign is a declarative web service client. It makes writing web service clients easier. To use Feign create an interface and annotate it. It has pluggable annotation support including Feign annotations and JAX-RS annotations. Feign also supports pluggable encoders and decoders. Spring Cloud adds support for Spring MVC annotations and for using the same HttpMessageConverters used by default in Spring Web. Spring Cloud integrates Ribbon and Eureka to provide a load balanced http client when using Feign.

1.1 How to Include Feign

To include Feign in your project use the starter with group org.springframework.cloud +and artifact id spring-cloud-starter-openfeign. See the Spring Cloud Project page +for details on setting up your build system with the current Spring Cloud Release Train.

Example spring boot app

@SpringBootApplication
+@EnableFeignClients
+public class Application {
+
+    public static void main(String[] args) {
+        SpringApplication.run(Application.class, args);
+    }
+
+}

StoreClient.java.  +

@FeignClient("stores")
+public interface StoreClient {
+    @RequestMapping(method = RequestMethod.GET, value = "/stores")
+    List<Store> getStores();
+
+    @RequestMapping(method = RequestMethod.POST, value = "/stores/{storeId}", consumes = "application/json")
+    Store update(@PathVariable("storeId") Long storeId, Store store);
+}

+

In the @FeignClient annotation the String value ("stores" above) is +an arbitrary client name, which is used to create a Ribbon load +balancer (see below for details of Ribbon +support). You can also specify a URL using the url attribute +(absolute value or just a hostname). The name of the bean in the +application context is the fully qualified name of the interface. +To specify your own alias value you can use the qualifier value +of the @FeignClient annotation.

The Ribbon client above will want to discover the physical addresses +for the "stores" service. If your application is a Eureka client then +it will resolve the service in the Eureka service registry. If you +don’t want to use Eureka, you can simply configure a list of servers +in your external configuration (see +above for example).

1.2 Overriding Feign Defaults

A central concept in Spring Cloud’s Feign support is that of the named client. Each feign client is part of an ensemble of components that work together to contact a remote server on demand, and the ensemble has a name that you give it as an application developer using the @FeignClient annotation. Spring Cloud creates a new ensemble as an +ApplicationContext on demand for each named client using FeignClientsConfiguration. This contains (amongst other things) an feign.Decoder, a feign.Encoder, and a feign.Contract.

Spring Cloud lets you take full control of the feign client by declaring additional configuration (on top of the FeignClientsConfiguration) using @FeignClient. Example:

@FeignClient(name = "stores", configuration = FooConfiguration.class)
+public interface StoreClient {
+    //..
+}

In this case the client is composed from the components already in FeignClientsConfiguration together with any in FooConfiguration (where the latter will override the former).

[Note]Note

FooConfiguration does not need to be annotated with @Configuration. However, if it is, then take care to exclude it from any @ComponentScan that would otherwise include this configuration as it will become the default source for feign.Decoder, feign.Encoder, feign.Contract, etc., when specified. This can be avoided by putting it in a separate, non-overlapping package from any @ComponentScan or @SpringBootApplication, or it can be explicitly excluded in @ComponentScan.

[Note]Note

The serviceId attribute is now deprecated in favor of the name attribute.

[Warning]Warning

Previously, using the url attribute, did not require the name attribute. Using name is now required.

Placeholders are supported in the name and url attributes.

@FeignClient(name = "${feign.name}", url = "${feign.url}")
+public interface StoreClient {
+    //..
+}

Spring Cloud Netflix provides the following beans by default for feign (BeanType beanName: ClassName):

  • Decoder feignDecoder: ResponseEntityDecoder (which wraps a SpringDecoder)
  • Encoder feignEncoder: SpringEncoder
  • Logger feignLogger: Slf4jLogger
  • Contract feignContract: SpringMvcContract
  • Feign.Builder feignBuilder: HystrixFeign.Builder
  • Client feignClient: if Ribbon is enabled it is a LoadBalancerFeignClient, otherwise the default feign client is used.

The OkHttpClient and ApacheHttpClient feign clients can be used by setting feign.okhttp.enabled or feign.httpclient.enabled to true, respectively, and having them on the classpath. +You can customize the HTTP client used by providing a bean of either ClosableHttpClient when using Apache or OkHttpClient whe using OK HTTP.

Spring Cloud Netflix does not provide the following beans by default for feign, but still looks up beans of these types from the application context to create the feign client:

  • Logger.Level
  • Retryer
  • ErrorDecoder
  • Request.Options
  • Collection<RequestInterceptor>
  • SetterFactory

Creating a bean of one of those type and placing it in a @FeignClient configuration (such as FooConfiguration above) allows you to override each one of the beans described. Example:

@Configuration
+public class FooConfiguration {
+    @Bean
+    public Contract feignContract() {
+        return new feign.Contract.Default();
+    }
+
+    @Bean
+    public BasicAuthRequestInterceptor basicAuthRequestInterceptor() {
+        return new BasicAuthRequestInterceptor("user", "password");
+    }
+}

This replaces the SpringMvcContract with feign.Contract.Default and adds a RequestInterceptor to the collection of RequestInterceptor.

@FeignClient also can be configured using configuration properties.

application.yml

feign:
+  client:
+    config:
+      feignName:
+        connectTimeout: 5000
+        readTimeout: 5000
+        loggerLevel: full
+        errorDecoder: com.example.SimpleErrorDecoder
+        retryer: com.example.SimpleRetryer
+        requestInterceptors:
+          - com.example.FooRequestInterceptor
+          - com.example.BarRequestInterceptor
+        decode404: false
+        encoder: com.example.SimpleEncoder
+        decoder: com.example.SimpleDecoder
+        contract: com.example.SimpleContract

Default configurations can be specified in the @EnableFeignClients attribute defaultConfiguration in a similar manner as described above. The difference is that this configuration will apply to all feign clients.

If you prefer using configuration properties to configured all @FeignClient, you can create configuration properties with default feign name.

application.yml

feign:
+  client:
+    config:
+      default:
+        connectTimeout: 5000
+        readTimeout: 5000
+        loggerLevel: basic

If we create both @Configuration bean and configuration properties, configuration properties will win. +It will override @Configuration values. But if you want to change the priority to @Configuration, +you can change feign.client.default-to-properties to false.

[Note]Note

If you need to use ThreadLocal bound variables in your RequestInterceptor`s you will need to either set the +thread isolation strategy for Hystrix to `SEMAPHORE or disable Hystrix in Feign.

application.yml

# To disable Hystrix in Feign
+feign:
+  hystrix:
+    enabled: false
+
+# To set thread isolation to SEMAPHORE
+hystrix:
+  command:
+    default:
+      execution:
+        isolation:
+          strategy: SEMAPHORE

1.3 Creating Feign Clients Manually

In some cases it might be necessary to customize your Feign Clients in a way that is not +possible using the methods above. In this case you can create Clients using the +Feign Builder API. Below is an example +which creates two Feign Clients with the same interface but configures each one with +a separate request interceptor.

@Import(FeignClientsConfiguration.class)
+class FooController {
+
+	private FooClient fooClient;
+
+	private FooClient adminClient;
+
+    	@Autowired
+	public FooController(
+			Decoder decoder, Encoder encoder, Client client, Contract contract) {
+		this.fooClient = Feign.builder().client(client)
+				.encoder(encoder)
+				.decoder(decoder)
+                .contract(contract)
+				.requestInterceptor(new BasicAuthRequestInterceptor("user", "user"))
+				.target(FooClient.class, "http://PROD-SVC");
+		this.adminClient = Feign.builder().client(client)
+				.encoder(encoder)
+				.decoder(decoder)
+				.contract(contract)
+				.requestInterceptor(new BasicAuthRequestInterceptor("admin", "admin"))
+				.target(FooClient.class, "http://PROD-SVC");
+    }
+}
[Note]Note

In the above example FeignClientsConfiguration.class is the default configuration +provided by Spring Cloud Netflix.

[Note]Note

PROD-SVC is the name of the service the Clients will be making requests to.

[Note]Note

The Feign Contract object defines what annotations and values are valid on interfaces. The +autowired Contract bean provides supports for SpringMVC annotations, instead of +the default Feign native annotations.

1.4 Feign Hystrix Support

If Hystrix is on the classpath and feign.hystrix.enabled=true, Feign will wrap all methods with a circuit breaker. Returning a com.netflix.hystrix.HystrixCommand is also available. This lets you use reactive patterns (with a call to .toObservable() or .observe() or asynchronous use (with a call to .queue()).

To disable Hystrix support on a per-client basis create a vanilla Feign.Builder with the "prototype" scope, e.g.:

@Configuration
+public class FooConfiguration {
+    	@Bean
+	@Scope("prototype")
+	public Feign.Builder feignBuilder() {
+		return Feign.builder();
+	}
+}
[Warning]Warning

Prior to the Spring Cloud Dalston release, if Hystrix was on the classpath Feign would have wrapped +all methods in a circuit breaker by default. This default behavior was changed in Spring Cloud Dalston in +favor for an opt-in approach.

1.5 Feign Hystrix Fallbacks

Hystrix supports the notion of a fallback: a default code path that is executed when they circuit is open or there is an error. To enable fallbacks for a given @FeignClient set the fallback attribute to the class name that implements the fallback. You also need to declare your implementation as a Spring bean.

@FeignClient(name = "hello", fallback = HystrixClientFallback.class)
+protected interface HystrixClient {
+    @RequestMapping(method = RequestMethod.GET, value = "/hello")
+    Hello iFailSometimes();
+}
+
+static class HystrixClientFallback implements HystrixClient {
+    @Override
+    public Hello iFailSometimes() {
+        return new Hello("fallback");
+    }
+}

If one needs access to the cause that made the fallback trigger, one can use the fallbackFactory attribute inside @FeignClient.

@FeignClient(name = "hello", fallbackFactory = HystrixClientFallbackFactory.class)
+protected interface HystrixClient {
+	@RequestMapping(method = RequestMethod.GET, value = "/hello")
+	Hello iFailSometimes();
+}
+
+@Component
+static class HystrixClientFallbackFactory implements FallbackFactory<HystrixClient> {
+	@Override
+	public HystrixClient create(Throwable cause) {
+		return new HystrixClient() {
+			@Override
+			public Hello iFailSometimes() {
+				return new Hello("fallback; reason was: " + cause.getMessage());
+			}
+		};
+	}
+}
[Warning]Warning

There is a limitation with the implementation of fallbacks in Feign and how Hystrix fallbacks work. Fallbacks are currently not supported for methods that return com.netflix.hystrix.HystrixCommand and rx.Observable.

1.6 Feign and @Primary

When using Feign with Hystrix fallbacks, there are multiple beans in the ApplicationContext of the same type. This will cause @Autowired to not work because there isn’t exactly one bean, or one marked as primary. To work around this, Spring Cloud Netflix marks all Feign instances as @Primary, so Spring Framework will know which bean to inject. In some cases, this may not be desirable. To turn off this behavior set the primary attribute of @FeignClient to false.

@FeignClient(name = "hello", primary = false)
+public interface HelloClient {
+	// methods here
+}

1.7 Feign Inheritance Support

Feign supports boilerplate apis via single-inheritance interfaces. +This allows grouping common operations into convenient base interfaces.

UserService.java.  +

public interface UserService {
+
+    @RequestMapping(method = RequestMethod.GET, value ="/users/{id}")
+    User getUser(@PathVariable("id") long id);
+}

+

UserResource.java.  +

@RestController
+public class UserResource implements UserService {
+
+}

+

UserClient.java.  +

package project.user;
+
+@FeignClient("users")
+public interface UserClient extends UserService {
+
+}

+

[Note]Note

It is generally not advisable to share an interface between a +server and a client. It introduces tight coupling, and also actually +doesn’t work with Spring MVC in its current form (method parameter +mapping is not inherited).

1.8 Feign request/response compression

You may consider enabling the request or response GZIP compression for your +Feign requests. You can do this by enabling one of the properties:

feign.compression.request.enabled=true
+feign.compression.response.enabled=true

Feign request compression gives you settings similar to what you may set for your web server:

feign.compression.request.enabled=true
+feign.compression.request.mime-types=text/xml,application/xml,application/json
+feign.compression.request.min-request-size=2048

These properties allow you to be selective about the compressed media types and minimum request threshold length.

1.9 Feign logging

A logger is created for each Feign client created. By default the name of the logger is the full class name of the interface used to create the Feign client. Feign logging only responds to the DEBUG level.

application.yml.  +

logging.level.project.user.UserClient: DEBUG

+

The Logger.Level object that you may configure per client, tells Feign how much to log. Choices are:

  • NONE, No logging (DEFAULT).
  • BASIC, Log only the request method and URL and the response status code and execution time.
  • HEADERS, Log the basic information along with request and response headers.
  • FULL, Log the headers, body, and metadata for both requests and responses.

For example, the following would set the Logger.Level to FULL:

@Configuration
+public class FooConfiguration {
+    @Bean
+    Logger.Level feignLoggerLevel() {
+        return Logger.Level.FULL;
+    }
+}
        OtherClass.someMethod(myprop.get());
+    }
+}
+stripped). The proxy uses Ribbon to locate an instance to forward to
+via discovery, and all requests are executed in a
+<<hystrix-fallbacks-for-routes, hystrix command>>, so
+failures will show up in Hystrix metrics, and once the circuit is open
+the proxy will not try to contact the service.
\ No newline at end of file diff --git a/multi/multi_spring-cloud-openfeign.html b/multi/multi_spring-cloud-openfeign.html new file mode 100644 index 00000000..656ec8ad --- /dev/null +++ b/multi/multi_spring-cloud-openfeign.html @@ -0,0 +1,3 @@ + + + Spring Cloud OpenFeign \ No newline at end of file diff --git a/single/css/highlight.css b/single/css/highlight.css new file mode 100644 index 00000000..ffefef72 --- /dev/null +++ b/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/single/css/manual-multipage.css b/single/css/manual-multipage.css new file mode 100644 index 00000000..0c484531 --- /dev/null +++ b/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/single/css/manual-singlepage.css b/single/css/manual-singlepage.css new file mode 100644 index 00000000..4a7fd140 --- /dev/null +++ b/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/single/css/manual.css b/single/css/manual.css new file mode 100644 index 00000000..0ecbe2e8 --- /dev/null +++ b/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/single/images/background.png b/single/images/background.png new file mode 100644 index 00000000..15dca6fb Binary files /dev/null and b/single/images/background.png differ diff --git a/single/images/caution.png b/single/images/caution.png new file mode 100644 index 00000000..8a5e4fca Binary files /dev/null and b/single/images/caution.png differ diff --git a/single/images/important.png b/single/images/important.png new file mode 100644 index 00000000..ec54df65 Binary files /dev/null and b/single/images/important.png differ diff --git a/single/images/logo.png b/single/images/logo.png new file mode 100644 index 00000000..ade2ce6e Binary files /dev/null and b/single/images/logo.png differ diff --git a/single/images/note.png b/single/images/note.png new file mode 100644 index 00000000..88d997b1 Binary files /dev/null and b/single/images/note.png differ diff --git a/single/images/sts_exception.png b/single/images/sts_exception.png new file mode 100644 index 00000000..8607c38a Binary files /dev/null and b/single/images/sts_exception.png differ diff --git a/single/images/tip.png b/single/images/tip.png new file mode 100644 index 00000000..6530abb4 Binary files /dev/null and b/single/images/tip.png differ diff --git a/single/images/warning.png b/single/images/warning.png new file mode 100644 index 00000000..0d5b5244 Binary files /dev/null and b/single/images/warning.png differ diff --git a/single/images/web-selected.png b/single/images/web-selected.png new file mode 100644 index 00000000..aa6b2da6 Binary files /dev/null and b/single/images/web-selected.png differ diff --git a/single/spring-cloud-openfeign.html b/single/spring-cloud-openfeign.html new file mode 100644 index 00000000..ab902387 --- /dev/null +++ b/single/spring-cloud-openfeign.html @@ -0,0 +1,200 @@ + + + Spring Cloud OpenFeign

Spring Cloud OpenFeign


2.0.0.BUILD-SNAPSHOT

This project provides OpenFeign integrations for Spring Boot apps through autoconfiguration +and binding to the Spring Environment and other Spring programming model idioms.

1. Declarative REST Client: Feign

Feign is a declarative web service client. It makes writing web service clients easier. To use Feign create an interface and annotate it. It has pluggable annotation support including Feign annotations and JAX-RS annotations. Feign also supports pluggable encoders and decoders. Spring Cloud adds support for Spring MVC annotations and for using the same HttpMessageConverters used by default in Spring Web. Spring Cloud integrates Ribbon and Eureka to provide a load balanced http client when using Feign.

1.1 How to Include Feign

To include Feign in your project use the starter with group org.springframework.cloud +and artifact id spring-cloud-starter-openfeign. See the Spring Cloud Project page +for details on setting up your build system with the current Spring Cloud Release Train.

Example spring boot app

@SpringBootApplication
+@EnableFeignClients
+public class Application {
+
+    public static void main(String[] args) {
+        SpringApplication.run(Application.class, args);
+    }
+
+}

StoreClient.java.  +

@FeignClient("stores")
+public interface StoreClient {
+    @RequestMapping(method = RequestMethod.GET, value = "/stores")
+    List<Store> getStores();
+
+    @RequestMapping(method = RequestMethod.POST, value = "/stores/{storeId}", consumes = "application/json")
+    Store update(@PathVariable("storeId") Long storeId, Store store);
+}

+

In the @FeignClient annotation the String value ("stores" above) is +an arbitrary client name, which is used to create a Ribbon load +balancer (see below for details of Ribbon +support). You can also specify a URL using the url attribute +(absolute value or just a hostname). The name of the bean in the +application context is the fully qualified name of the interface. +To specify your own alias value you can use the qualifier value +of the @FeignClient annotation.

The Ribbon client above will want to discover the physical addresses +for the "stores" service. If your application is a Eureka client then +it will resolve the service in the Eureka service registry. If you +don’t want to use Eureka, you can simply configure a list of servers +in your external configuration (see +above for example).

1.2 Overriding Feign Defaults

A central concept in Spring Cloud’s Feign support is that of the named client. Each feign client is part of an ensemble of components that work together to contact a remote server on demand, and the ensemble has a name that you give it as an application developer using the @FeignClient annotation. Spring Cloud creates a new ensemble as an +ApplicationContext on demand for each named client using FeignClientsConfiguration. This contains (amongst other things) an feign.Decoder, a feign.Encoder, and a feign.Contract.

Spring Cloud lets you take full control of the feign client by declaring additional configuration (on top of the FeignClientsConfiguration) using @FeignClient. Example:

@FeignClient(name = "stores", configuration = FooConfiguration.class)
+public interface StoreClient {
+    //..
+}

In this case the client is composed from the components already in FeignClientsConfiguration together with any in FooConfiguration (where the latter will override the former).

[Note]Note

FooConfiguration does not need to be annotated with @Configuration. However, if it is, then take care to exclude it from any @ComponentScan that would otherwise include this configuration as it will become the default source for feign.Decoder, feign.Encoder, feign.Contract, etc., when specified. This can be avoided by putting it in a separate, non-overlapping package from any @ComponentScan or @SpringBootApplication, or it can be explicitly excluded in @ComponentScan.

[Note]Note

The serviceId attribute is now deprecated in favor of the name attribute.

[Warning]Warning

Previously, using the url attribute, did not require the name attribute. Using name is now required.

Placeholders are supported in the name and url attributes.

@FeignClient(name = "${feign.name}", url = "${feign.url}")
+public interface StoreClient {
+    //..
+}

Spring Cloud Netflix provides the following beans by default for feign (BeanType beanName: ClassName):

  • Decoder feignDecoder: ResponseEntityDecoder (which wraps a SpringDecoder)
  • Encoder feignEncoder: SpringEncoder
  • Logger feignLogger: Slf4jLogger
  • Contract feignContract: SpringMvcContract
  • Feign.Builder feignBuilder: HystrixFeign.Builder
  • Client feignClient: if Ribbon is enabled it is a LoadBalancerFeignClient, otherwise the default feign client is used.

The OkHttpClient and ApacheHttpClient feign clients can be used by setting feign.okhttp.enabled or feign.httpclient.enabled to true, respectively, and having them on the classpath. +You can customize the HTTP client used by providing a bean of either ClosableHttpClient when using Apache or OkHttpClient whe using OK HTTP.

Spring Cloud Netflix does not provide the following beans by default for feign, but still looks up beans of these types from the application context to create the feign client:

  • Logger.Level
  • Retryer
  • ErrorDecoder
  • Request.Options
  • Collection<RequestInterceptor>
  • SetterFactory

Creating a bean of one of those type and placing it in a @FeignClient configuration (such as FooConfiguration above) allows you to override each one of the beans described. Example:

@Configuration
+public class FooConfiguration {
+    @Bean
+    public Contract feignContract() {
+        return new feign.Contract.Default();
+    }
+
+    @Bean
+    public BasicAuthRequestInterceptor basicAuthRequestInterceptor() {
+        return new BasicAuthRequestInterceptor("user", "password");
+    }
+}

This replaces the SpringMvcContract with feign.Contract.Default and adds a RequestInterceptor to the collection of RequestInterceptor.

@FeignClient also can be configured using configuration properties.

application.yml

feign:
+  client:
+    config:
+      feignName:
+        connectTimeout: 5000
+        readTimeout: 5000
+        loggerLevel: full
+        errorDecoder: com.example.SimpleErrorDecoder
+        retryer: com.example.SimpleRetryer
+        requestInterceptors:
+          - com.example.FooRequestInterceptor
+          - com.example.BarRequestInterceptor
+        decode404: false
+        encoder: com.example.SimpleEncoder
+        decoder: com.example.SimpleDecoder
+        contract: com.example.SimpleContract

Default configurations can be specified in the @EnableFeignClients attribute defaultConfiguration in a similar manner as described above. The difference is that this configuration will apply to all feign clients.

If you prefer using configuration properties to configured all @FeignClient, you can create configuration properties with default feign name.

application.yml

feign:
+  client:
+    config:
+      default:
+        connectTimeout: 5000
+        readTimeout: 5000
+        loggerLevel: basic

If we create both @Configuration bean and configuration properties, configuration properties will win. +It will override @Configuration values. But if you want to change the priority to @Configuration, +you can change feign.client.default-to-properties to false.

[Note]Note

If you need to use ThreadLocal bound variables in your RequestInterceptor`s you will need to either set the +thread isolation strategy for Hystrix to `SEMAPHORE or disable Hystrix in Feign.

application.yml

# To disable Hystrix in Feign
+feign:
+  hystrix:
+    enabled: false
+
+# To set thread isolation to SEMAPHORE
+hystrix:
+  command:
+    default:
+      execution:
+        isolation:
+          strategy: SEMAPHORE

1.3 Creating Feign Clients Manually

In some cases it might be necessary to customize your Feign Clients in a way that is not +possible using the methods above. In this case you can create Clients using the +Feign Builder API. Below is an example +which creates two Feign Clients with the same interface but configures each one with +a separate request interceptor.

@Import(FeignClientsConfiguration.class)
+class FooController {
+
+	private FooClient fooClient;
+
+	private FooClient adminClient;
+
+    	@Autowired
+	public FooController(
+			Decoder decoder, Encoder encoder, Client client, Contract contract) {
+		this.fooClient = Feign.builder().client(client)
+				.encoder(encoder)
+				.decoder(decoder)
+                .contract(contract)
+				.requestInterceptor(new BasicAuthRequestInterceptor("user", "user"))
+				.target(FooClient.class, "http://PROD-SVC");
+		this.adminClient = Feign.builder().client(client)
+				.encoder(encoder)
+				.decoder(decoder)
+				.contract(contract)
+				.requestInterceptor(new BasicAuthRequestInterceptor("admin", "admin"))
+				.target(FooClient.class, "http://PROD-SVC");
+    }
+}
[Note]Note

In the above example FeignClientsConfiguration.class is the default configuration +provided by Spring Cloud Netflix.

[Note]Note

PROD-SVC is the name of the service the Clients will be making requests to.

[Note]Note

The Feign Contract object defines what annotations and values are valid on interfaces. The +autowired Contract bean provides supports for SpringMVC annotations, instead of +the default Feign native annotations.

1.4 Feign Hystrix Support

If Hystrix is on the classpath and feign.hystrix.enabled=true, Feign will wrap all methods with a circuit breaker. Returning a com.netflix.hystrix.HystrixCommand is also available. This lets you use reactive patterns (with a call to .toObservable() or .observe() or asynchronous use (with a call to .queue()).

To disable Hystrix support on a per-client basis create a vanilla Feign.Builder with the "prototype" scope, e.g.:

@Configuration
+public class FooConfiguration {
+    	@Bean
+	@Scope("prototype")
+	public Feign.Builder feignBuilder() {
+		return Feign.builder();
+	}
+}
[Warning]Warning

Prior to the Spring Cloud Dalston release, if Hystrix was on the classpath Feign would have wrapped +all methods in a circuit breaker by default. This default behavior was changed in Spring Cloud Dalston in +favor for an opt-in approach.

1.5 Feign Hystrix Fallbacks

Hystrix supports the notion of a fallback: a default code path that is executed when they circuit is open or there is an error. To enable fallbacks for a given @FeignClient set the fallback attribute to the class name that implements the fallback. You also need to declare your implementation as a Spring bean.

@FeignClient(name = "hello", fallback = HystrixClientFallback.class)
+protected interface HystrixClient {
+    @RequestMapping(method = RequestMethod.GET, value = "/hello")
+    Hello iFailSometimes();
+}
+
+static class HystrixClientFallback implements HystrixClient {
+    @Override
+    public Hello iFailSometimes() {
+        return new Hello("fallback");
+    }
+}

If one needs access to the cause that made the fallback trigger, one can use the fallbackFactory attribute inside @FeignClient.

@FeignClient(name = "hello", fallbackFactory = HystrixClientFallbackFactory.class)
+protected interface HystrixClient {
+	@RequestMapping(method = RequestMethod.GET, value = "/hello")
+	Hello iFailSometimes();
+}
+
+@Component
+static class HystrixClientFallbackFactory implements FallbackFactory<HystrixClient> {
+	@Override
+	public HystrixClient create(Throwable cause) {
+		return new HystrixClient() {
+			@Override
+			public Hello iFailSometimes() {
+				return new Hello("fallback; reason was: " + cause.getMessage());
+			}
+		};
+	}
+}
[Warning]Warning

There is a limitation with the implementation of fallbacks in Feign and how Hystrix fallbacks work. Fallbacks are currently not supported for methods that return com.netflix.hystrix.HystrixCommand and rx.Observable.

1.6 Feign and @Primary

When using Feign with Hystrix fallbacks, there are multiple beans in the ApplicationContext of the same type. This will cause @Autowired to not work because there isn’t exactly one bean, or one marked as primary. To work around this, Spring Cloud Netflix marks all Feign instances as @Primary, so Spring Framework will know which bean to inject. In some cases, this may not be desirable. To turn off this behavior set the primary attribute of @FeignClient to false.

@FeignClient(name = "hello", primary = false)
+public interface HelloClient {
+	// methods here
+}

1.7 Feign Inheritance Support

Feign supports boilerplate apis via single-inheritance interfaces. +This allows grouping common operations into convenient base interfaces.

UserService.java.  +

public interface UserService {
+
+    @RequestMapping(method = RequestMethod.GET, value ="/users/{id}")
+    User getUser(@PathVariable("id") long id);
+}

+

UserResource.java.  +

@RestController
+public class UserResource implements UserService {
+
+}

+

UserClient.java.  +

package project.user;
+
+@FeignClient("users")
+public interface UserClient extends UserService {
+
+}

+

[Note]Note

It is generally not advisable to share an interface between a +server and a client. It introduces tight coupling, and also actually +doesn’t work with Spring MVC in its current form (method parameter +mapping is not inherited).

1.8 Feign request/response compression

You may consider enabling the request or response GZIP compression for your +Feign requests. You can do this by enabling one of the properties:

feign.compression.request.enabled=true
+feign.compression.response.enabled=true

Feign request compression gives you settings similar to what you may set for your web server:

feign.compression.request.enabled=true
+feign.compression.request.mime-types=text/xml,application/xml,application/json
+feign.compression.request.min-request-size=2048

These properties allow you to be selective about the compressed media types and minimum request threshold length.

1.9 Feign logging

A logger is created for each Feign client created. By default the name of the logger is the full class name of the interface used to create the Feign client. Feign logging only responds to the DEBUG level.

application.yml.  +

logging.level.project.user.UserClient: DEBUG

+

The Logger.Level object that you may configure per client, tells Feign how much to log. Choices are:

  • NONE, No logging (DEFAULT).
  • BASIC, Log only the request method and URL and the response status code and execution time.
  • HEADERS, Log the basic information along with request and response headers.
  • FULL, Log the headers, body, and metadata for both requests and responses.

For example, the following would set the Logger.Level to FULL:

@Configuration
+public class FooConfiguration {
+    @Bean
+    Logger.Level feignLoggerLevel() {
+        return Logger.Level.FULL;
+    }
+}
        OtherClass.someMethod(myprop.get());
+    }
+}
+stripped). The proxy uses Ribbon to locate an instance to forward to
+via discovery, and all requests are executed in a
+<<hystrix-fallbacks-for-routes, hystrix command>>, so
+failures will show up in Hystrix metrics, and once the circuit is open
+the proxy will not try to contact the service.
\ No newline at end of file diff --git a/spring-cloud-openfeign-core/target/apidocs/allclasses-frame.html b/spring-cloud-openfeign-core/target/apidocs/allclasses-frame.html new file mode 100644 index 00000000..cac20c5e --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/allclasses-frame.html @@ -0,0 +1,63 @@ + + + + + + +All Classes (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + +

All Classes

+ + + diff --git a/spring-cloud-openfeign-core/target/apidocs/allclasses-noframe.html b/spring-cloud-openfeign-core/target/apidocs/allclasses-noframe.html new file mode 100644 index 00000000..dc6ccaed --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/allclasses-noframe.html @@ -0,0 +1,63 @@ + + + + + + +All Classes (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + +

All Classes

+ + + diff --git a/spring-cloud-openfeign-core/target/apidocs/constant-values.html b/spring-cloud-openfeign-core/target/apidocs/constant-values.html new file mode 100644 index 00000000..bc3b8309 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/constant-values.html @@ -0,0 +1,253 @@ + + + + + + +Constant Field Values (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + +
+ + + + + + + +
+ + +
+

Constant Field Values

+

Contents

+ +
+
+ + +

org.springframework.*

+ + +
+ +
+ + + + + + + +
+ + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/deprecated-list.html b/spring-cloud-openfeign-core/target/apidocs/deprecated-list.html new file mode 100644 index 00000000..010152cd --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/deprecated-list.html @@ -0,0 +1,181 @@ + + + + + + +Deprecated List (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + +
+ + + + + + + +
+ + + + + +
+ + + + + + + +
+ + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/help-doc.html b/spring-cloud-openfeign-core/target/apidocs/help-doc.html new file mode 100644 index 00000000..9b85141e --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/help-doc.html @@ -0,0 +1,231 @@ + + + + + + +API Help (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + +
+ + + + + + + +
+ + +
+

How This API Document Is Organized

+
This API (Application Programming Interface) document has pages corresponding to the items in the navigation bar, described as follows.
+
+
+
    +
  • +

    Overview

    +

    The Overview page is the front page of this API document and provides a list of all packages with a summary for each. This page can also contain an overall description of the set of packages.

    +
  • +
  • +

    Package

    +

    Each package has a page that contains a list of its classes and interfaces, with a summary for each. This page can contain six categories:

    +
      +
    • Interfaces (italic)
    • +
    • Classes
    • +
    • Enums
    • +
    • Exceptions
    • +
    • Errors
    • +
    • Annotation Types
    • +
    +
  • +
  • +

    Class/Interface

    +

    Each class, interface, nested class and nested interface has its own separate page. Each of these pages has three sections consisting of a class/interface description, summary tables, and detailed member descriptions:

    +
      +
    • Class inheritance diagram
    • +
    • Direct Subclasses
    • +
    • All Known Subinterfaces
    • +
    • All Known Implementing Classes
    • +
    • Class/interface declaration
    • +
    • Class/interface description
    • +
    +
      +
    • Nested Class Summary
    • +
    • Field Summary
    • +
    • Constructor Summary
    • +
    • Method Summary
    • +
    +
      +
    • Field Detail
    • +
    • Constructor Detail
    • +
    • Method Detail
    • +
    +

    Each summary entry contains the first sentence from the detailed description for that item. The summary entries are alphabetical, while the detailed descriptions are in the order they appear in the source code. This preserves the logical groupings established by the programmer.

    +
  • +
  • +

    Annotation Type

    +

    Each annotation type has its own separate page with the following sections:

    +
      +
    • Annotation Type declaration
    • +
    • Annotation Type description
    • +
    • Required Element Summary
    • +
    • Optional Element Summary
    • +
    • Element Detail
    • +
    +
  • +
  • +

    Enum

    +

    Each enum has its own separate page with the following sections:

    +
      +
    • Enum declaration
    • +
    • Enum description
    • +
    • Enum Constant Summary
    • +
    • Enum Constant Detail
    • +
    +
  • +
  • +

    Use

    +

    Each documented package, class and interface has its own Use page. This page describes what packages, classes, methods, constructors and fields use any part of the given class or package. Given a class or interface A, its Use page includes subclasses of A, fields declared as A, methods that return A, and methods and constructors with parameters of type A. You can access this page by first going to the package, class or interface, then clicking on the "Use" link in the navigation bar.

    +
  • +
  • +

    Tree (Class Hierarchy)

    +

    There is a Class Hierarchy page for all packages, plus a hierarchy for each package. Each hierarchy page contains a list of classes and a list of interfaces. The classes are organized by inheritance structure starting with java.lang.Object. The interfaces do not inherit from java.lang.Object.

    +
      +
    • When viewing the Overview page, clicking on "Tree" displays the hierarchy for all packages.
    • +
    • When viewing a particular package, class or interface page, clicking "Tree" displays the hierarchy for only that package.
    • +
    +
  • +
  • +

    Deprecated API

    +

    The Deprecated API page lists all of the API that have been deprecated. A deprecated API is not recommended for use, generally due to improvements, and a replacement API is usually given. Deprecated APIs may be removed in future implementations.

    +
  • +
  • +

    Index

    +

    The Index contains an alphabetic list of all classes, interfaces, constructors, methods, and fields.

    +
  • +
  • +

    Prev/Next

    +

    These links take you to the next or previous class, interface, package, or related page.

    +
  • +
  • +

    Frames/No Frames

    +

    These links show and hide the HTML frames. All pages are available with or without frames.

    +
  • +
  • +

    All Classes

    +

    The All Classes link shows all classes and interfaces except non-static nested types.

    +
  • +
  • +

    Serialized Form

    +

    Each serializable or externalizable class has a description of its serialization fields and methods. This information is of interest to re-implementors, not to developers using the API. While there is no link in the navigation bar, you can get to this information by going to any serialized class and clicking "Serialized Form" in the "See also" section of the class description.

    +
  • +
  • +

    Constant Field Values

    +

    The Constant Field Values page lists the static final fields and their values.

    +
  • +
+This help file applies to API documentation generated using the standard doclet.
+ +
+ + + + + + + +
+ + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/index-all.html b/spring-cloud-openfeign-core/target/apidocs/index-all.html new file mode 100644 index 00000000..82d5f3d8 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/index-all.html @@ -0,0 +1,788 @@ + + + + + + +Index (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + +
+ + + + + + + +
+ + +
A B C D E F G H I L O P R S T  + + +

A

+
+
ACCEPT_ENCODING_HEADER - Static variable in interface org.springframework.cloud.openfeign.encoding.HttpEncoding
+
+
The HTTP Accept-Encoding header.
+
+
addHeader(RequestTemplate, String, String...) - Method in class org.springframework.cloud.openfeign.encoding.BaseRequestInterceptor
+
+
Adds the header if it wasn't yet specified.
+
+
AnnotatedParameterProcessor - Interface in org.springframework.cloud.openfeign
+
+
Feign contract method parameter processor.
+
+
AnnotatedParameterProcessor.AnnotatedParameterContext - Interface in org.springframework.cloud.openfeign
+
+
Specifies the parameter context.
+
+
apply(RequestTemplate) - Method in class org.springframework.cloud.openfeign.encoding.FeignAcceptGzipEncodingInterceptor
+
apply(RequestTemplate) - Method in class org.springframework.cloud.openfeign.encoding.FeignContentGzipEncodingInterceptor
+
+ + + +

B

+
+
BaseRequestInterceptor - Class in org.springframework.cloud.openfeign.encoding
+
+
The base request interceptor.
+
+
BaseRequestInterceptor(FeignClientEncodingProperties) - Constructor for class org.springframework.cloud.openfeign.encoding.BaseRequestInterceptor
+
+
Creates new instance of BaseRequestInterceptor.
+
+
+ + + +

C

+
+
cachingLBClientFactory(SpringClientFactory) - Method in class org.springframework.cloud.openfeign.ribbon.FeignRibbonClientAutoConfiguration
+
 
+
CachingSpringLoadBalancerFactory - Class in org.springframework.cloud.openfeign.ribbon
+
+
Factory for SpringLoadBalancer instances that caches the entries created.
+
+
CachingSpringLoadBalancerFactory(SpringClientFactory) - Constructor for class org.springframework.cloud.openfeign.ribbon.CachingSpringLoadBalancerFactory
+
 
+
CachingSpringLoadBalancerFactory(SpringClientFactory, LoadBalancedRetryPolicyFactory) - Constructor for class org.springframework.cloud.openfeign.ribbon.CachingSpringLoadBalancerFactory
+
+
Deprecated.
+
+
CachingSpringLoadBalancerFactory(SpringClientFactory, LoadBalancedRetryPolicyFactory, boolean) - Constructor for class org.springframework.cloud.openfeign.ribbon.CachingSpringLoadBalancerFactory
+
+
Deprecated.
+
+
CachingSpringLoadBalancerFactory(SpringClientFactory, LoadBalancedRetryPolicyFactory, LoadBalancedBackOffPolicyFactory) - Constructor for class org.springframework.cloud.openfeign.ribbon.CachingSpringLoadBalancerFactory
+
+
Deprecated.
+
+
CachingSpringLoadBalancerFactory(SpringClientFactory, LoadBalancedRetryPolicyFactory, LoadBalancedBackOffPolicyFactory, LoadBalancedRetryListenerFactory) - Constructor for class org.springframework.cloud.openfeign.ribbon.CachingSpringLoadBalancerFactory
+
 
+
canRetry(RetryContext) - Method in class org.springframework.cloud.openfeign.ribbon.FeignRetryPolicy
+
 
+
choose(String) - Method in class org.springframework.cloud.openfeign.ribbon.RetryableFeignLoadBalancer
+
 
+
client(OkHttpClientFactory, ConnectionPool, FeignHttpClientProperties) - Method in class org.springframework.cloud.openfeign.FeignAutoConfiguration.OkHttpFeignConfiguration
+
 
+
clientConfig - Variable in class org.springframework.cloud.openfeign.ribbon.FeignLoadBalancer
+
 
+
clone() - Method in class org.springframework.cloud.openfeign.ribbon.FeignLoadBalancer.RibbonRequest
+
 
+
close() - Method in class org.springframework.cloud.openfeign.ribbon.FeignLoadBalancer.RibbonResponse
+
 
+
connectionManager(ApacheHttpClientConnectionManagerFactory, FeignHttpClientProperties) - Method in class org.springframework.cloud.openfeign.FeignAutoConfiguration.HttpClientFeignConfiguration
+
 
+
connectTimeout - Variable in class org.springframework.cloud.openfeign.ribbon.FeignLoadBalancer
+
 
+
CONTENT_ENCODING_HEADER - Static variable in interface org.springframework.cloud.openfeign.encoding.HttpEncoding
+
+
The HTTP Content-Encoding header.
+
+
CONTENT_LENGTH - Static variable in interface org.springframework.cloud.openfeign.encoding.HttpEncoding
+
+
The HTTP Content-Length header.
+
+
CONTENT_TYPE - Static variable in interface org.springframework.cloud.openfeign.encoding.HttpEncoding
+
+
The HTTP Content-Type header.
+
+
ConvertingExpander(ConversionService) - Constructor for class org.springframework.cloud.openfeign.support.SpringMvcContract.ConvertingExpander
+
 
+
create(Class<?>) - Method in class org.springframework.cloud.openfeign.DefaultFeignLoggerFactory
+
 
+
create(Class<?>) - Method in interface org.springframework.cloud.openfeign.FeignLoggerFactory
+
+
Factory method to provide a Logger for a given Class.
+
+
create(String) - Method in class org.springframework.cloud.openfeign.ribbon.CachingSpringLoadBalancerFactory
+
 
+
+ + + +

D

+
+
decode(Response, Type) - Method in class org.springframework.cloud.openfeign.support.ResponseEntityDecoder
+
 
+
decode(Response, Type) - Method in class org.springframework.cloud.openfeign.support.SpringDecoder
+
 
+
DEFAULT_CONNECTION_TIMEOUT - Static variable in class org.springframework.cloud.openfeign.support.FeignHttpClientProperties
+
 
+
DEFAULT_CONNECTION_TIMER_REPEAT - Static variable in class org.springframework.cloud.openfeign.support.FeignHttpClientProperties
+
 
+
DEFAULT_DISABLE_SSL_VALIDATION - Static variable in class org.springframework.cloud.openfeign.support.FeignHttpClientProperties
+
 
+
DEFAULT_FOLLOW_REDIRECTS - Static variable in class org.springframework.cloud.openfeign.support.FeignHttpClientProperties
+
 
+
DEFAULT_MAX_CONNECTIONS - Static variable in class org.springframework.cloud.openfeign.support.FeignHttpClientProperties
+
 
+
DEFAULT_MAX_CONNECTIONS_PER_ROUTE - Static variable in class org.springframework.cloud.openfeign.support.FeignHttpClientProperties
+
 
+
DEFAULT_TIME_TO_LIVE - Static variable in class org.springframework.cloud.openfeign.support.FeignHttpClientProperties
+
 
+
DEFAULT_TIME_TO_LIVE_UNIT - Static variable in class org.springframework.cloud.openfeign.support.FeignHttpClientProperties
+
 
+
DefaultFeignLoggerFactory - Class in org.springframework.cloud.openfeign
+
 
+
DefaultFeignLoggerFactory(Logger) - Constructor for class org.springframework.cloud.openfeign.DefaultFeignLoggerFactory
+
 
+
DefaultFeignTargeterConfiguration() - Constructor for class org.springframework.cloud.openfeign.FeignAutoConfiguration.DefaultFeignTargeterConfiguration
+
 
+
DEFLATE_ENCODING - Static variable in interface org.springframework.cloud.openfeign.encoding.HttpEncoding
+
+
The Deflate encoding.
+
+
destroy() - Method in class org.springframework.cloud.openfeign.FeignAutoConfiguration.HttpClientFeignConfiguration
+
 
+
destroy() - Method in class org.springframework.cloud.openfeign.FeignAutoConfiguration.OkHttpFeignConfiguration
+
 
+
+ + + +

E

+
+
EnableFeignClients - Annotation Type in org.springframework.cloud.openfeign
+
+
Scans for interfaces that declare they are feign clients (via @FeignClient).
+
+
encode(Object, Type, RequestTemplate) - Method in class org.springframework.cloud.openfeign.support.SpringEncoder
+
 
+
equals(Object) - Method in class org.springframework.cloud.openfeign.encoding.FeignClientEncodingProperties
+
 
+
equals(Object) - Method in class org.springframework.cloud.openfeign.FeignClientProperties
+
 
+
equals(Object) - Method in class org.springframework.cloud.openfeign.FeignClientProperties.FeignClientConfiguration
+
 
+
execute(FeignLoadBalancer.RibbonRequest, IClientConfig) - Method in class org.springframework.cloud.openfeign.ribbon.FeignLoadBalancer
+
 
+
execute(Request, Request.Options) - Method in class org.springframework.cloud.openfeign.ribbon.LoadBalancerFeignClient
+
 
+
execute(FeignLoadBalancer.RibbonRequest, IClientConfig) - Method in class org.springframework.cloud.openfeign.ribbon.RetryableFeignLoadBalancer
+
 
+
expand(Object) - Method in class org.springframework.cloud.openfeign.support.SpringMvcContract.ConvertingExpander
+
 
+
+ + + +

F

+
+
FallbackCommand<T> - Class in org.springframework.cloud.openfeign.support
+
+
Convenience class for implementing feign fallbacks that return HystrixCommand.
+
+
FallbackCommand(T) - Constructor for class org.springframework.cloud.openfeign.support.FallbackCommand
+
 
+
FallbackCommand(T, String) - Constructor for class org.springframework.cloud.openfeign.support.FallbackCommand
+
 
+
FallbackCommand(T, HystrixCommandGroupKey) - Constructor for class org.springframework.cloud.openfeign.support.FallbackCommand
+
 
+
FallbackCommand(T, HystrixCommandGroupKey, int) - Constructor for class org.springframework.cloud.openfeign.support.FallbackCommand
+
 
+
FallbackCommand(T, HystrixCommandGroupKey, HystrixThreadPoolKey) - Constructor for class org.springframework.cloud.openfeign.support.FallbackCommand
+
 
+
FallbackCommand(T, HystrixCommandGroupKey, HystrixThreadPoolKey, int) - Constructor for class org.springframework.cloud.openfeign.support.FallbackCommand
+
 
+
FallbackCommand(T, HystrixCommand.Setter) - Constructor for class org.springframework.cloud.openfeign.support.FallbackCommand
+
 
+
FeignAcceptGzipEncodingAutoConfiguration - Class in org.springframework.cloud.openfeign.encoding
+
+
Configures the Feign response compression.
+
+
FeignAcceptGzipEncodingAutoConfiguration() - Constructor for class org.springframework.cloud.openfeign.encoding.FeignAcceptGzipEncodingAutoConfiguration
+
 
+
feignAcceptGzipEncodingInterceptor(FeignClientEncodingProperties) - Method in class org.springframework.cloud.openfeign.encoding.FeignAcceptGzipEncodingAutoConfiguration
+
 
+
FeignAcceptGzipEncodingInterceptor - Class in org.springframework.cloud.openfeign.encoding
+
+
Enables the HTTP response payload compression by specifying the Accept-Encoding headers.
+
+
FeignAcceptGzipEncodingInterceptor(FeignClientEncodingProperties) - Constructor for class org.springframework.cloud.openfeign.encoding.FeignAcceptGzipEncodingInterceptor
+
+
Creates new instance of FeignAcceptGzipEncodingInterceptor.
+
+
FeignAutoConfiguration - Class in org.springframework.cloud.openfeign
+
 
+
FeignAutoConfiguration() - Constructor for class org.springframework.cloud.openfeign.FeignAutoConfiguration
+
 
+
FeignAutoConfiguration.DefaultFeignTargeterConfiguration - Class in org.springframework.cloud.openfeign
+
 
+
FeignAutoConfiguration.HttpClientFeignConfiguration - Class in org.springframework.cloud.openfeign
+
 
+
FeignAutoConfiguration.HystrixFeignTargeterConfiguration - Class in org.springframework.cloud.openfeign
+
 
+
FeignAutoConfiguration.OkHttpFeignConfiguration - Class in org.springframework.cloud.openfeign
+
 
+
feignBuilder(Retryer) - Method in class org.springframework.cloud.openfeign.FeignClientsConfiguration
+
 
+
feignClient(HttpClient) - Method in class org.springframework.cloud.openfeign.FeignAutoConfiguration.HttpClientFeignConfiguration
+
 
+
feignClient() - Method in class org.springframework.cloud.openfeign.FeignAutoConfiguration.OkHttpFeignConfiguration
+
 
+
FeignClient - Annotation Type in org.springframework.cloud.openfeign
+
+
Annotation for interfaces declaring that a REST client with that interface should be + created (e.g.
+
+
FeignClientConfiguration() - Constructor for class org.springframework.cloud.openfeign.FeignClientProperties.FeignClientConfiguration
+
 
+
FeignClientEncodingProperties - Class in org.springframework.cloud.openfeign.encoding
+
+
The Feign encoding properties.
+
+
FeignClientEncodingProperties() - Constructor for class org.springframework.cloud.openfeign.encoding.FeignClientEncodingProperties
+
 
+
FeignClientProperties - Class in org.springframework.cloud.openfeign
+
 
+
FeignClientProperties() - Constructor for class org.springframework.cloud.openfeign.FeignClientProperties
+
 
+
FeignClientProperties.FeignClientConfiguration - Class in org.springframework.cloud.openfeign
+
 
+
FeignClientsConfiguration - Class in org.springframework.cloud.openfeign
+
 
+
FeignClientsConfiguration() - Constructor for class org.springframework.cloud.openfeign.FeignClientsConfiguration
+
 
+
FeignClientsConfiguration.HystrixFeignConfiguration - Class in org.springframework.cloud.openfeign
+
 
+
FeignContentGzipEncodingAutoConfiguration - Class in org.springframework.cloud.openfeign.encoding
+
+
Configures the Feign request compression.
+
+
FeignContentGzipEncodingAutoConfiguration() - Constructor for class org.springframework.cloud.openfeign.encoding.FeignContentGzipEncodingAutoConfiguration
+
 
+
feignContentGzipEncodingInterceptor(FeignClientEncodingProperties) - Method in class org.springframework.cloud.openfeign.encoding.FeignContentGzipEncodingAutoConfiguration
+
 
+
FeignContentGzipEncodingInterceptor - Class in org.springframework.cloud.openfeign.encoding
+
+
Enables the HTTP request payload compression by specifying the Content-Encoding headers.
+
+
FeignContentGzipEncodingInterceptor(FeignClientEncodingProperties) - Constructor for class org.springframework.cloud.openfeign.encoding.FeignContentGzipEncodingInterceptor
+
+
Creates new instance of FeignContentGzipEncodingInterceptor.
+
+
feignContext() - Method in class org.springframework.cloud.openfeign.FeignAutoConfiguration
+
 
+
FeignContext - Class in org.springframework.cloud.openfeign
+
+
A factory that creates instances of feign classes.
+
+
FeignContext() - Constructor for class org.springframework.cloud.openfeign.FeignContext
+
 
+
feignContract(ConversionService) - Method in class org.springframework.cloud.openfeign.FeignClientsConfiguration
+
 
+
feignConversionService() - Method in class org.springframework.cloud.openfeign.FeignClientsConfiguration
+
 
+
feignDecoder() - Method in class org.springframework.cloud.openfeign.FeignClientsConfiguration
+
 
+
feignEncoder() - Method in class org.springframework.cloud.openfeign.FeignClientsConfiguration
+
 
+
feignFeature() - Method in class org.springframework.cloud.openfeign.FeignAutoConfiguration
+
 
+
FeignFormatterRegistrar - Interface in org.springframework.cloud.openfeign
+
+
Allows an application to customize the Feign FormattingConversionService.
+
+
FeignHttpClientProperties - Class in org.springframework.cloud.openfeign.support
+
 
+
FeignHttpClientProperties() - Constructor for class org.springframework.cloud.openfeign.support.FeignHttpClientProperties
+
 
+
feignHystrixBuilder() - Method in class org.springframework.cloud.openfeign.FeignClientsConfiguration.HystrixFeignConfiguration
+
 
+
FeignLoadBalancer - Class in org.springframework.cloud.openfeign.ribbon
+
 
+
FeignLoadBalancer(ILoadBalancer, IClientConfig, ServerIntrospector) - Constructor for class org.springframework.cloud.openfeign.ribbon.FeignLoadBalancer
+
 
+
FeignLoadBalancer.RibbonRequest - Class in org.springframework.cloud.openfeign.ribbon
+
 
+
FeignLoadBalancer.RibbonResponse - Class in org.springframework.cloud.openfeign.ribbon
+
 
+
feignLoggerFactory() - Method in class org.springframework.cloud.openfeign.FeignClientsConfiguration
+
 
+
FeignLoggerFactory - Interface in org.springframework.cloud.openfeign
+
+
Allows an application to use a custom Feign Logger.
+
+
feignRequestOptions() - Method in class org.springframework.cloud.openfeign.ribbon.FeignRibbonClientAutoConfiguration
+
 
+
feignRetryer() - Method in class org.springframework.cloud.openfeign.FeignClientsConfiguration
+
 
+
FeignRetryPolicy - Class in org.springframework.cloud.openfeign.ribbon
+
 
+
FeignRetryPolicy(HttpRequest, LoadBalancedRetryPolicy, ServiceInstanceChooser, String) - Constructor for class org.springframework.cloud.openfeign.ribbon.FeignRetryPolicy
+
 
+
FeignRibbonClientAutoConfiguration - Class in org.springframework.cloud.openfeign.ribbon
+
+
Autoconfiguration to be activated if Feign is in use and needs to be use Ribbon as a + load balancer.
+
+
FeignRibbonClientAutoConfiguration() - Constructor for class org.springframework.cloud.openfeign.ribbon.FeignRibbonClientAutoConfiguration
+
 
+
feignTargeter() - Method in class org.springframework.cloud.openfeign.FeignAutoConfiguration.DefaultFeignTargeterConfiguration
+
 
+
feignTargeter() - Method in class org.springframework.cloud.openfeign.FeignAutoConfiguration.HystrixFeignTargeterConfiguration
+
 
+
FeignUtils - Class in org.springframework.cloud.openfeign.support
+
 
+
FeignUtils() - Constructor for class org.springframework.cloud.openfeign.support.FeignUtils
+
 
+
findIOException(Throwable) - Method in class org.springframework.cloud.openfeign.ribbon.LoadBalancerFeignClient
+
 
+
+ + + +

G

+
+
getAnnotationType() - Method in interface org.springframework.cloud.openfeign.AnnotatedParameterProcessor
+
+
Retrieves the processor supported annotation type.
+
+
getAnnotationType() - Method in class org.springframework.cloud.openfeign.annotation.PathVariableParameterProcessor
+
 
+
getAnnotationType() - Method in class org.springframework.cloud.openfeign.annotation.RequestHeaderParameterProcessor
+
 
+
getAnnotationType() - Method in class org.springframework.cloud.openfeign.annotation.RequestParamParameterProcessor
+
 
+
getConfig() - Method in class org.springframework.cloud.openfeign.FeignClientProperties
+
 
+
getConnectionTimeout() - Method in class org.springframework.cloud.openfeign.support.FeignHttpClientProperties
+
 
+
getConnectionTimerRepeat() - Method in class org.springframework.cloud.openfeign.support.FeignHttpClientProperties
+
 
+
getConnectTimeout() - Method in class org.springframework.cloud.openfeign.FeignClientProperties.FeignClientConfiguration
+
 
+
getContract() - Method in class org.springframework.cloud.openfeign.FeignClientProperties.FeignClientConfiguration
+
 
+
getDecode404() - Method in class org.springframework.cloud.openfeign.FeignClientProperties.FeignClientConfiguration
+
 
+
getDecoder() - Method in class org.springframework.cloud.openfeign.FeignClientProperties.FeignClientConfiguration
+
 
+
getDefaultConfig() - Method in class org.springframework.cloud.openfeign.FeignClientProperties
+
 
+
getDelegate() - Method in class org.springframework.cloud.openfeign.ribbon.LoadBalancerFeignClient
+
 
+
getEncoder() - Method in class org.springframework.cloud.openfeign.FeignClientProperties.FeignClientConfiguration
+
 
+
getErrorDecoder() - Method in class org.springframework.cloud.openfeign.FeignClientProperties.FeignClientConfiguration
+
 
+
getHeaders() - Method in class org.springframework.cloud.openfeign.ribbon.FeignLoadBalancer.RibbonResponse
+
 
+
getLoggerLevel() - Method in class org.springframework.cloud.openfeign.FeignClientProperties.FeignClientConfiguration
+
 
+
getMaxConnections() - Method in class org.springframework.cloud.openfeign.support.FeignHttpClientProperties
+
 
+
getMaxConnectionsPerRoute() - Method in class org.springframework.cloud.openfeign.support.FeignHttpClientProperties
+
 
+
getMethodMetadata() - Method in interface org.springframework.cloud.openfeign.AnnotatedParameterProcessor.AnnotatedParameterContext
+
+
Retrieves the method metadata.
+
+
getMimeTypes() - Method in class org.springframework.cloud.openfeign.encoding.FeignClientEncodingProperties
+
 
+
getMinRequestSize() - Method in class org.springframework.cloud.openfeign.encoding.FeignClientEncodingProperties
+
 
+
getParameterIndex() - Method in interface org.springframework.cloud.openfeign.AnnotatedParameterProcessor.AnnotatedParameterContext
+
+
Retrieves the index of the parameter.
+
+
getPayload() - Method in class org.springframework.cloud.openfeign.ribbon.FeignLoadBalancer.RibbonResponse
+
 
+
getProperties() - Method in class org.springframework.cloud.openfeign.encoding.BaseRequestInterceptor
+
 
+
getReadTimeout() - Method in class org.springframework.cloud.openfeign.FeignClientProperties.FeignClientConfiguration
+
 
+
getRequestedURI() - Method in class org.springframework.cloud.openfeign.ribbon.FeignLoadBalancer.RibbonResponse
+
 
+
getRequestInterceptors() - Method in class org.springframework.cloud.openfeign.FeignClientProperties.FeignClientConfiguration
+
 
+
getRequestSpecificRetryHandler(FeignLoadBalancer.RibbonRequest, IClientConfig) - Method in class org.springframework.cloud.openfeign.ribbon.FeignLoadBalancer
+
 
+
getRequestSpecificRetryHandler(FeignLoadBalancer.RibbonRequest, IClientConfig) - Method in class org.springframework.cloud.openfeign.ribbon.RetryableFeignLoadBalancer
+
 
+
getResponse() - Method in exception org.springframework.cloud.openfeign.ribbon.RibbonResponseStatusCodeException
+
 
+
getRetryer() - Method in class org.springframework.cloud.openfeign.FeignClientProperties.FeignClientConfiguration
+
 
+
getTimeToLive() - Method in class org.springframework.cloud.openfeign.support.FeignHttpClientProperties
+
 
+
getTimeToLiveUnit() - Method in class org.springframework.cloud.openfeign.support.FeignHttpClientProperties
+
 
+
GZIP_ENCODING - Static variable in interface org.springframework.cloud.openfeign.encoding.HttpEncoding
+
+
The GZIP encoding.
+
+
+ + + +

H

+
+
hashCode() - Method in class org.springframework.cloud.openfeign.encoding.FeignClientEncodingProperties
+
 
+
hashCode() - Method in class org.springframework.cloud.openfeign.FeignClientProperties.FeignClientConfiguration
+
 
+
hashCode() - Method in class org.springframework.cloud.openfeign.FeignClientProperties
+
 
+
hasPayload() - Method in class org.springframework.cloud.openfeign.ribbon.FeignLoadBalancer.RibbonResponse
+
 
+
httpClient(ApacheHttpClientFactory, HttpClientConnectionManager, FeignHttpClientProperties) - Method in class org.springframework.cloud.openfeign.FeignAutoConfiguration.HttpClientFeignConfiguration
+
 
+
httpClientConnectionPool(FeignHttpClientProperties, OkHttpClientConnectionPoolFactory) - Method in class org.springframework.cloud.openfeign.FeignAutoConfiguration.OkHttpFeignConfiguration
+
 
+
HttpClientFeignConfiguration() - Constructor for class org.springframework.cloud.openfeign.FeignAutoConfiguration.HttpClientFeignConfiguration
+
 
+
HttpEncoding - Interface in org.springframework.cloud.openfeign.encoding
+
+
Lists all constants used by Feign encoders.
+
+
HystrixFeignConfiguration() - Constructor for class org.springframework.cloud.openfeign.FeignClientsConfiguration.HystrixFeignConfiguration
+
 
+
HystrixFeignTargeterConfiguration() - Constructor for class org.springframework.cloud.openfeign.FeignAutoConfiguration.HystrixFeignTargeterConfiguration
+
 
+
+ + + +

I

+
+
isDefaultToProperties() - Method in class org.springframework.cloud.openfeign.FeignClientProperties
+
 
+
isDisableSslValidation() - Method in class org.springframework.cloud.openfeign.support.FeignHttpClientProperties
+
 
+
isFollowRedirects() - Method in class org.springframework.cloud.openfeign.support.FeignHttpClientProperties
+
 
+
isSuccess() - Method in class org.springframework.cloud.openfeign.ribbon.FeignLoadBalancer.RibbonResponse
+
 
+
+ + + +

L

+
+
LoadBalancerFeignClient - Class in org.springframework.cloud.openfeign.ribbon
+
 
+
LoadBalancerFeignClient(Client, CachingSpringLoadBalancerFactory, SpringClientFactory) - Constructor for class org.springframework.cloud.openfeign.ribbon.LoadBalancerFeignClient
+
 
+
+ + + +

O

+
+
OkHttpFeignConfiguration() - Constructor for class org.springframework.cloud.openfeign.FeignAutoConfiguration.OkHttpFeignConfiguration
+
 
+
open(RetryContext) - Method in class org.springframework.cloud.openfeign.ribbon.FeignRetryPolicy
+
 
+
org.springframework.cloud.openfeign - package org.springframework.cloud.openfeign
+
 
+
org.springframework.cloud.openfeign.annotation - package org.springframework.cloud.openfeign.annotation
+
 
+
org.springframework.cloud.openfeign.encoding - package org.springframework.cloud.openfeign.encoding
+
 
+
org.springframework.cloud.openfeign.ribbon - package org.springframework.cloud.openfeign.ribbon
+
 
+
org.springframework.cloud.openfeign.support - package org.springframework.cloud.openfeign.support
+
 
+
+ + + +

P

+
+
parseAndValidateMetadata(Class<?>, Method) - Method in class org.springframework.cloud.openfeign.support.SpringMvcContract
+
 
+
PathVariableParameterProcessor - Class in org.springframework.cloud.openfeign.annotation
+
+
PathVariable parameter processor.
+
+
PathVariableParameterProcessor() - Constructor for class org.springframework.cloud.openfeign.annotation.PathVariableParameterProcessor
+
 
+
processAnnotationOnClass(MethodMetadata, Class<?>) - Method in class org.springframework.cloud.openfeign.support.SpringMvcContract
+
 
+
processAnnotationOnMethod(MethodMetadata, Annotation, Method) - Method in class org.springframework.cloud.openfeign.support.SpringMvcContract
+
 
+
processAnnotationsOnParameter(MethodMetadata, Annotation[], int) - Method in class org.springframework.cloud.openfeign.support.SpringMvcContract
+
 
+
processArgument(AnnotatedParameterProcessor.AnnotatedParameterContext, Annotation, Method) - Method in interface org.springframework.cloud.openfeign.AnnotatedParameterProcessor
+
+
Process the annotated parameter.
+
+
processArgument(AnnotatedParameterProcessor.AnnotatedParameterContext, Annotation, Method) - Method in class org.springframework.cloud.openfeign.annotation.PathVariableParameterProcessor
+
 
+
processArgument(AnnotatedParameterProcessor.AnnotatedParameterContext, Annotation, Method) - Method in class org.springframework.cloud.openfeign.annotation.RequestHeaderParameterProcessor
+
 
+
processArgument(AnnotatedParameterProcessor.AnnotatedParameterContext, Annotation, Method) - Method in class org.springframework.cloud.openfeign.annotation.RequestParamParameterProcessor
+
 
+
+ + + +

R

+
+
readTimeout - Variable in class org.springframework.cloud.openfeign.ribbon.FeignLoadBalancer
+
 
+
reconstructURIWithServer(Server, URI) - Method in class org.springframework.cloud.openfeign.ribbon.FeignLoadBalancer
+
 
+
RequestHeaderParameterProcessor - Class in org.springframework.cloud.openfeign.annotation
+
+
RequestHeader parameter processor.
+
+
RequestHeaderParameterProcessor() - Constructor for class org.springframework.cloud.openfeign.annotation.RequestHeaderParameterProcessor
+
 
+
RequestParamParameterProcessor - Class in org.springframework.cloud.openfeign.annotation
+
+
RequestParam parameter processor.
+
+
RequestParamParameterProcessor() - Constructor for class org.springframework.cloud.openfeign.annotation.RequestParamParameterProcessor
+
 
+
ResponseEntityDecoder - Class in org.springframework.cloud.openfeign.support
+
+
Decoder adds compatibility for Spring MVC's ResponseEntity to any other decoder via + composition.
+
+
ResponseEntityDecoder(Decoder) - Constructor for class org.springframework.cloud.openfeign.support.ResponseEntityDecoder
+
 
+
retryabeCachingLBClientFactory(SpringClientFactory, LoadBalancedRetryPolicyFactory, LoadBalancedBackOffPolicyFactory, LoadBalancedRetryListenerFactory) - Method in class org.springframework.cloud.openfeign.ribbon.FeignRibbonClientAutoConfiguration
+
 
+
RetryableFeignLoadBalancer - Class in org.springframework.cloud.openfeign.ribbon
+
+
A FeignLoadBalancer that leverages Spring Retry to retry failed requests.
+
+
RetryableFeignLoadBalancer(ILoadBalancer, IClientConfig, ServerIntrospector, LoadBalancedRetryPolicyFactory) - Constructor for class org.springframework.cloud.openfeign.ribbon.RetryableFeignLoadBalancer
+
+
Deprecated.
+
+
RetryableFeignLoadBalancer(ILoadBalancer, IClientConfig, ServerIntrospector, LoadBalancedRetryPolicyFactory, LoadBalancedBackOffPolicyFactory) - Constructor for class org.springframework.cloud.openfeign.ribbon.RetryableFeignLoadBalancer
+
+
Deprecated.
+
+
RetryableFeignLoadBalancer(ILoadBalancer, IClientConfig, ServerIntrospector, LoadBalancedRetryPolicyFactory, LoadBalancedBackOffPolicyFactory, LoadBalancedRetryListenerFactory) - Constructor for class org.springframework.cloud.openfeign.ribbon.RetryableFeignLoadBalancer
+
 
+
RibbonResponseStatusCodeException - Exception in org.springframework.cloud.openfeign.ribbon
+
+
A RetryableStatusCodeException for Responses
+
+
RibbonResponseStatusCodeException(String, Response, byte[], URI) - Constructor for exception org.springframework.cloud.openfeign.ribbon.RibbonResponseStatusCodeException
+
 
+
run() - Method in class org.springframework.cloud.openfeign.support.FallbackCommand
+
 
+
+ + + +

S

+
+
serverIntrospector - Variable in class org.springframework.cloud.openfeign.ribbon.FeignLoadBalancer
+
 
+
setConfig(Map<String, FeignClientProperties.FeignClientConfiguration>) - Method in class org.springframework.cloud.openfeign.FeignClientProperties
+
 
+
setConnectionTimeout(int) - Method in class org.springframework.cloud.openfeign.support.FeignHttpClientProperties
+
 
+
setConnectionTimerRepeat(int) - Method in class org.springframework.cloud.openfeign.support.FeignHttpClientProperties
+
 
+
setConnectTimeout(Integer) - Method in class org.springframework.cloud.openfeign.FeignClientProperties.FeignClientConfiguration
+
 
+
setContract(Class<Contract>) - Method in class org.springframework.cloud.openfeign.FeignClientProperties.FeignClientConfiguration
+
 
+
setDecode404(Boolean) - Method in class org.springframework.cloud.openfeign.FeignClientProperties.FeignClientConfiguration
+
 
+
setDecoder(Class<Decoder>) - Method in class org.springframework.cloud.openfeign.FeignClientProperties.FeignClientConfiguration
+
 
+
setDefaultConfig(String) - Method in class org.springframework.cloud.openfeign.FeignClientProperties
+
 
+
setDefaultToProperties(boolean) - Method in class org.springframework.cloud.openfeign.FeignClientProperties
+
 
+
setDisableSslValidation(boolean) - Method in class org.springframework.cloud.openfeign.support.FeignHttpClientProperties
+
 
+
setEncoder(Class<Encoder>) - Method in class org.springframework.cloud.openfeign.FeignClientProperties.FeignClientConfiguration
+
 
+
setErrorDecoder(Class<ErrorDecoder>) - Method in class org.springframework.cloud.openfeign.FeignClientProperties.FeignClientConfiguration
+
 
+
setFollowRedirects(boolean) - Method in class org.springframework.cloud.openfeign.support.FeignHttpClientProperties
+
 
+
setLoggerLevel(Logger.Level) - Method in class org.springframework.cloud.openfeign.FeignClientProperties.FeignClientConfiguration
+
 
+
setMaxConnections(int) - Method in class org.springframework.cloud.openfeign.support.FeignHttpClientProperties
+
 
+
setMaxConnectionsPerRoute(int) - Method in class org.springframework.cloud.openfeign.support.FeignHttpClientProperties
+
 
+
setMimeTypes(String[]) - Method in class org.springframework.cloud.openfeign.encoding.FeignClientEncodingProperties
+
 
+
setMinRequestSize(int) - Method in class org.springframework.cloud.openfeign.encoding.FeignClientEncodingProperties
+
 
+
setParameterName(String) - Method in interface org.springframework.cloud.openfeign.AnnotatedParameterProcessor.AnnotatedParameterContext
+
+
Sets the parameter name.
+
+
setReadTimeout(Integer) - Method in class org.springframework.cloud.openfeign.FeignClientProperties.FeignClientConfiguration
+
 
+
setRequestInterceptors(List<Class<RequestInterceptor>>) - Method in class org.springframework.cloud.openfeign.FeignClientProperties.FeignClientConfiguration
+
 
+
setResourceLoader(ResourceLoader) - Method in class org.springframework.cloud.openfeign.support.SpringMvcContract
+
 
+
setRetryer(Class<Retryer>) - Method in class org.springframework.cloud.openfeign.FeignClientProperties.FeignClientConfiguration
+
 
+
setTemplateParameter(String, Collection<String>) - Method in interface org.springframework.cloud.openfeign.AnnotatedParameterProcessor.AnnotatedParameterContext
+
+
Sets the template parameter.
+
+
setTimeToLive(long) - Method in class org.springframework.cloud.openfeign.support.FeignHttpClientProperties
+
 
+
setTimeToLiveUnit(TimeUnit) - Method in class org.springframework.cloud.openfeign.support.FeignHttpClientProperties
+
 
+
SpringDecoder - Class in org.springframework.cloud.openfeign.support
+
 
+
SpringDecoder(ObjectFactory<HttpMessageConverters>) - Constructor for class org.springframework.cloud.openfeign.support.SpringDecoder
+
 
+
SpringEncoder - Class in org.springframework.cloud.openfeign.support
+
 
+
SpringEncoder(ObjectFactory<HttpMessageConverters>) - Constructor for class org.springframework.cloud.openfeign.support.SpringEncoder
+
 
+
SpringMvcContract - Class in org.springframework.cloud.openfeign.support
+
 
+
SpringMvcContract() - Constructor for class org.springframework.cloud.openfeign.support.SpringMvcContract
+
 
+
SpringMvcContract(List<AnnotatedParameterProcessor>) - Constructor for class org.springframework.cloud.openfeign.support.SpringMvcContract
+
 
+
SpringMvcContract(List<AnnotatedParameterProcessor>, ConversionService) - Constructor for class org.springframework.cloud.openfeign.support.SpringMvcContract
+
 
+
SpringMvcContract.ConvertingExpander - Class in org.springframework.cloud.openfeign.support
+
 
+
+ + + +

T

+
+
toString() - Method in class org.springframework.cloud.openfeign.encoding.FeignClientEncodingProperties
+
 
+
+A B C D E F G H I L O P R S T 
+ +
+ + + + + + + +
+ + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/index.html b/spring-cloud-openfeign-core/target/apidocs/index.html new file mode 100644 index 00000000..fa310b72 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/index.html @@ -0,0 +1,76 @@ + + + + + + +Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API + + + + + + + + + +<noscript> +<div>JavaScript is disabled on your browser.</div> +</noscript> +<h2>Frame Alert</h2> +<p>This document is designed to be viewed using the frames feature. If you see this message, you are using a non-frame-capable web client. Link to <a href="overview-summary.html">Non-frame version</a>.</p> + + + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/AnnotatedParameterProcessor.AnnotatedParameterContext.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/AnnotatedParameterProcessor.AnnotatedParameterContext.html new file mode 100644 index 00000000..ef6a9c6d --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/AnnotatedParameterProcessor.AnnotatedParameterContext.html @@ -0,0 +1,304 @@ + + + + + + +AnnotatedParameterProcessor.AnnotatedParameterContext (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + + +
+
org.springframework.cloud.openfeign
+

Interface AnnotatedParameterProcessor.AnnotatedParameterContext

+
+
+
+
    +
  • +
    +
    Enclosing interface:
    +
    AnnotatedParameterProcessor
    +
    +
    +
    +
    public static interface AnnotatedParameterProcessor.AnnotatedParameterContext
    +
    Specifies the parameter context.
    +
    +
    Author:
    +
    Jakub Narloch
    +
    +
  • +
+
+
+ +
+
+
    +
  • + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        getMethodMetadata

        +
        feign.MethodMetadata getMethodMetadata()
        +
        Retrieves the method metadata.
        +
        +
        Returns:
        +
        the method metadata
        +
        +
      • +
      + + + +
        +
      • +

        getParameterIndex

        +
        int getParameterIndex()
        +
        Retrieves the index of the parameter.
        +
        +
        Returns:
        +
        the parameter index
        +
        +
      • +
      + + + +
        +
      • +

        setParameterName

        +
        void setParameterName(String name)
        +
        Sets the parameter name.
        +
        +
        Parameters:
        +
        name - the name of the parameter
        +
        +
      • +
      + + + +
        +
      • +

        setTemplateParameter

        +
        Collection<String> setTemplateParameter(String name,
        +                                        Collection<String> rest)
        +
        Sets the template parameter.
        +
        +
        Parameters:
        +
        name - the template parameter
        +
        rest - the existing parameter values
        +
        Returns:
        +
        parameters
        +
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/AnnotatedParameterProcessor.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/AnnotatedParameterProcessor.html new file mode 100644 index 00000000..a4009dcc --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/AnnotatedParameterProcessor.html @@ -0,0 +1,288 @@ + + + + + + +AnnotatedParameterProcessor (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + + +
+
org.springframework.cloud.openfeign
+

Interface AnnotatedParameterProcessor

+
+
+
+ +
+
+ +
+
+
    +
  • + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        getAnnotationType

        +
        Class<? extends Annotation> getAnnotationType()
        +
        Retrieves the processor supported annotation type.
        +
        +
        Returns:
        +
        the annotation type
        +
        +
      • +
      + + + +
        +
      • +

        processArgument

        +
        boolean processArgument(AnnotatedParameterProcessor.AnnotatedParameterContext context,
        +                        Annotation annotation,
        +                        Method method)
        +
        Process the annotated parameter.
        +
        +
        Parameters:
        +
        context - the parameter context
        +
        annotation - the annotation instance
        +
        method - the method that contains the annotation
        +
        Returns:
        +
        whether the parameter is http
        +
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/DefaultFeignLoggerFactory.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/DefaultFeignLoggerFactory.html new file mode 100644 index 00000000..6fdfb51d --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/DefaultFeignLoggerFactory.html @@ -0,0 +1,294 @@ + + + + + + +DefaultFeignLoggerFactory (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + + +
+
org.springframework.cloud.openfeign
+

Class DefaultFeignLoggerFactory

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • org.springframework.cloud.openfeign.DefaultFeignLoggerFactory
    • +
    +
  • +
+
+ +
+
+ +
+
+
    +
  • + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        DefaultFeignLoggerFactory

        +
        public DefaultFeignLoggerFactory(feign.Logger logger)
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        create

        +
        public feign.Logger create(Class<?> type)
        +
        Description copied from interface: FeignLoggerFactory
        +
        Factory method to provide a Logger for a given Class.
        +
        +
        Specified by:
        +
        create in interface FeignLoggerFactory
        +
        Parameters:
        +
        type - the Class for which a Logger instance is to be created
        +
        Returns:
        +
        a Logger instance
        +
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/EnableFeignClients.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/EnableFeignClients.html new file mode 100644 index 00000000..1abf0a78 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/EnableFeignClients.html @@ -0,0 +1,357 @@ + + + + + + +EnableFeignClients (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + + +
+
org.springframework.cloud.openfeign
+

Annotation Type EnableFeignClients

+
+
+
+
    +
  • +
    +
    +
    @Retention(value=RUNTIME)
    + @Target(value=TYPE)
    + @Documented
    + @Import(value=org.springframework.cloud.openfeign.FeignClientsRegistrar.class)
    +public @interface EnableFeignClients
    +
    Scans for interfaces that declare they are feign clients (via @FeignClient). Configures component scanning directives for use with + @Configuration classes.
    +
    +
    Since:
    +
    1.0
    +
    Author:
    +
    Spencer Gibb, Dave Syer
    +
    +
  • +
+
+
+ +
+
+
    +
  • + +
      +
    • + + +

      Element Detail

      + + + +
        +
      • +

        value

        +
        public abstract String[] value
        +
        Alias for the basePackages() attribute. Allows for more concise annotation + declarations e.g.: @ComponentScan("org.my.pkg") instead of + @ComponentScan(basePackages="org.my.pkg").
        +
        +
        Returns:
        +
        the array of 'basePackages'.
        +
        +
        +
        Default:
        +
        {}
        +
        +
      • +
      +
    • +
    +
      +
    • + + +
        +
      • +

        basePackages

        +
        public abstract String[] basePackages
        +
        Base packages to scan for annotated components. +

        + value() is an alias for (and mutually exclusive with) this attribute. +

        + Use basePackageClasses() for a type-safe alternative to String-based + package names.

        +
        +
        Returns:
        +
        the array of 'basePackages'.
        +
        +
        +
        Default:
        +
        {}
        +
        +
      • +
      +
    • +
    +
      +
    • + + +
        +
      • +

        basePackageClasses

        +
        public abstract Class<?>[] basePackageClasses
        +
        Type-safe alternative to basePackages() for specifying the packages to + scan for annotated components. The package of each class specified will be scanned. +

        + Consider creating a special no-op marker class or interface in each package that + serves no purpose other than being referenced by this attribute.

        +
        +
        Returns:
        +
        the array of 'basePackageClasses'.
        +
        +
        +
        Default:
        +
        {}
        +
        +
      • +
      +
    • +
    +
      +
    • + + +
        +
      • +

        defaultConfiguration

        +
        public abstract Class<?>[] defaultConfiguration
        +
        A custom @Configuration for all feign clients. Can contain override + @Bean definition for the pieces that make up the client, for instance + Decoder, Encoder, Contract.
        +
        +
        See Also:
        +
        for the defaults
        +
        +
        +
        Default:
        +
        {}
        +
        +
      • +
      +
    • +
    +
      +
    • + + +
        +
      • +

        clients

        +
        public abstract Class<?>[] clients
        +
        List of classes annotated with @FeignClient. If not empty, disables classpath scanning.
        +
        +
        Returns:
        +
        +
        +
        Default:
        +
        {}
        +
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/FeignAutoConfiguration.DefaultFeignTargeterConfiguration.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/FeignAutoConfiguration.DefaultFeignTargeterConfiguration.html new file mode 100644 index 00000000..e6535666 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/FeignAutoConfiguration.DefaultFeignTargeterConfiguration.html @@ -0,0 +1,283 @@ + + + + + + +FeignAutoConfiguration.DefaultFeignTargeterConfiguration (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + + +
+
org.springframework.cloud.openfeign
+

Class FeignAutoConfiguration.DefaultFeignTargeterConfiguration

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • org.springframework.cloud.openfeign.FeignAutoConfiguration.DefaultFeignTargeterConfiguration
    • +
    +
  • +
+
+
    +
  • +
    +
    Enclosing class:
    +
    FeignAutoConfiguration
    +
    +
    +
    +
    @Configuration
    + @ConditionalOnMissingClass(value="feign.hystrix.HystrixFeign")
    +protected static class FeignAutoConfiguration.DefaultFeignTargeterConfiguration
    +extends Object
    +
  • +
+
+
+ +
+
+
    +
  • + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        DefaultFeignTargeterConfiguration

        +
        protected DefaultFeignTargeterConfiguration()
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        feignTargeter

        +
        @Bean
        + @ConditionalOnMissingBean
        +public org.springframework.cloud.openfeign.Targeter feignTargeter()
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/FeignAutoConfiguration.HttpClientFeignConfiguration.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/FeignAutoConfiguration.HttpClientFeignConfiguration.html new file mode 100644 index 00000000..dbd41f9b --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/FeignAutoConfiguration.HttpClientFeignConfiguration.html @@ -0,0 +1,341 @@ + + + + + + +FeignAutoConfiguration.HttpClientFeignConfiguration (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + + +
+
org.springframework.cloud.openfeign
+

Class FeignAutoConfiguration.HttpClientFeignConfiguration

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • org.springframework.cloud.openfeign.FeignAutoConfiguration.HttpClientFeignConfiguration
    • +
    +
  • +
+
+
    +
  • +
    +
    Enclosing class:
    +
    FeignAutoConfiguration
    +
    +
    +
    +
    @Configuration
    + @ConditionalOnClass(value=feign.httpclient.ApacheHttpClient.class)
    + @ConditionalOnMissingClass(value="com.netflix.loadbalancer.ILoadBalancer")
    + @ConditionalOnMissingBean(value=org.apache.http.impl.client.CloseableHttpClient.class)
    + @ConditionalOnProperty(value="feign.httpclient.enabled",
    +                       matchIfMissing=true)
    +protected static class FeignAutoConfiguration.HttpClientFeignConfiguration
    +extends Object
    +
  • +
+
+
+ +
+
+
    +
  • + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        HttpClientFeignConfiguration

        +
        protected HttpClientFeignConfiguration()
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        connectionManager

        +
        @Bean
        + @ConditionalOnMissingBean(value=org.apache.http.conn.HttpClientConnectionManager.class)
        +public org.apache.http.conn.HttpClientConnectionManager connectionManager(org.springframework.cloud.commons.httpclient.ApacheHttpClientConnectionManagerFactory connectionManagerFactory,
        +                                                                                                                                                                         FeignHttpClientProperties httpClientProperties)
        +
      • +
      + + + +
        +
      • +

        httpClient

        +
        @Bean
        +public org.apache.http.impl.client.CloseableHttpClient httpClient(org.springframework.cloud.commons.httpclient.ApacheHttpClientFactory httpClientFactory,
        +                                                                        org.apache.http.conn.HttpClientConnectionManager httpClientConnectionManager,
        +                                                                        FeignHttpClientProperties httpClientProperties)
        +
      • +
      + + + +
        +
      • +

        feignClient

        +
        @Bean
        + @ConditionalOnMissingBean(value=feign.Client.class)
        +public feign.Client feignClient(org.apache.http.client.HttpClient httpClient)
        +
      • +
      + + + + +
    • +
    +
  • +
+
+
+ + + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/FeignAutoConfiguration.HystrixFeignTargeterConfiguration.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/FeignAutoConfiguration.HystrixFeignTargeterConfiguration.html new file mode 100644 index 00000000..bf121c67 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/FeignAutoConfiguration.HystrixFeignTargeterConfiguration.html @@ -0,0 +1,283 @@ + + + + + + +FeignAutoConfiguration.HystrixFeignTargeterConfiguration (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + + +
+
org.springframework.cloud.openfeign
+

Class FeignAutoConfiguration.HystrixFeignTargeterConfiguration

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • org.springframework.cloud.openfeign.FeignAutoConfiguration.HystrixFeignTargeterConfiguration
    • +
    +
  • +
+
+
    +
  • +
    +
    Enclosing class:
    +
    FeignAutoConfiguration
    +
    +
    +
    +
    @Configuration
    + @ConditionalOnClass(name="feign.hystrix.HystrixFeign")
    +protected static class FeignAutoConfiguration.HystrixFeignTargeterConfiguration
    +extends Object
    +
  • +
+
+
+ +
+
+
    +
  • + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        HystrixFeignTargeterConfiguration

        +
        protected HystrixFeignTargeterConfiguration()
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        feignTargeter

        +
        @Bean
        + @ConditionalOnMissingBean
        +public org.springframework.cloud.openfeign.Targeter feignTargeter()
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/FeignAutoConfiguration.OkHttpFeignConfiguration.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/FeignAutoConfiguration.OkHttpFeignConfiguration.html new file mode 100644 index 00000000..43ec218b --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/FeignAutoConfiguration.OkHttpFeignConfiguration.html @@ -0,0 +1,335 @@ + + + + + + +FeignAutoConfiguration.OkHttpFeignConfiguration (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + + +
+
org.springframework.cloud.openfeign
+

Class FeignAutoConfiguration.OkHttpFeignConfiguration

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • org.springframework.cloud.openfeign.FeignAutoConfiguration.OkHttpFeignConfiguration
    • +
    +
  • +
+
+
    +
  • +
    +
    Enclosing class:
    +
    FeignAutoConfiguration
    +
    +
    +
    +
    @Configuration
    + @ConditionalOnClass(value=feign.okhttp.OkHttpClient.class)
    + @ConditionalOnMissingClass(value="com.netflix.loadbalancer.ILoadBalancer")
    + @ConditionalOnMissingBean(value=okhttp3.OkHttpClient.class)
    + @ConditionalOnProperty(value="feign.okhttp.enabled")
    +protected static class FeignAutoConfiguration.OkHttpFeignConfiguration
    +extends Object
    +
  • +
+
+
+ +
+
+
    +
  • + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        OkHttpFeignConfiguration

        +
        protected OkHttpFeignConfiguration()
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        httpClientConnectionPool

        +
        @Bean
        + @ConditionalOnMissingBean(value=okhttp3.ConnectionPool.class)
        +public okhttp3.ConnectionPool httpClientConnectionPool(FeignHttpClientProperties httpClientProperties,
        +                                                                                                                            org.springframework.cloud.commons.httpclient.OkHttpClientConnectionPoolFactory connectionPoolFactory)
        +
      • +
      + + + +
        +
      • +

        client

        +
        @Bean
        +public okhttp3.OkHttpClient client(org.springframework.cloud.commons.httpclient.OkHttpClientFactory httpClientFactory,
        +                                         okhttp3.ConnectionPool connectionPool,
        +                                         FeignHttpClientProperties httpClientProperties)
        +
      • +
      + + + + + + + +
        +
      • +

        feignClient

        +
        @Bean
        + @ConditionalOnMissingBean(value=feign.Client.class)
        +public feign.Client feignClient()
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/FeignAutoConfiguration.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/FeignAutoConfiguration.html new file mode 100644 index 00000000..890b0984 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/FeignAutoConfiguration.html @@ -0,0 +1,326 @@ + + + + + + +FeignAutoConfiguration (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + + +
+
org.springframework.cloud.openfeign
+

Class FeignAutoConfiguration

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • org.springframework.cloud.openfeign.FeignAutoConfiguration
    • +
    +
  • +
+
+ +
+
+ +
+
+
    +
  • + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        FeignAutoConfiguration

        +
        public FeignAutoConfiguration()
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        feignFeature

        +
        @Bean
        +public org.springframework.cloud.client.actuator.HasFeatures feignFeature()
        +
      • +
      + + + +
        +
      • +

        feignContext

        +
        @Bean
        +public FeignContext feignContext()
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/FeignClient.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/FeignClient.html new file mode 100644 index 00000000..02a0861e --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/FeignClient.html @@ -0,0 +1,483 @@ + + + + + + +FeignClient (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + + +
+
org.springframework.cloud.openfeign
+

Annotation Type FeignClient

+
+
+
+
    +
  • +
    +
    +
    @Target(value=TYPE)
    + @Retention(value=RUNTIME)
    + @Documented
    +public @interface FeignClient
    +
    Annotation for interfaces declaring that a REST client with that interface should be + created (e.g. for autowiring into another component). If ribbon is available it will be + used to load balance the backend requests, and the load balancer can be configured + using a @RibbonClient with the same name (i.e. value) as the feign client.
    +
    +
    Author:
    +
    Spencer Gibb, Venil Noronha
    +
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Optional Element Summary

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      Optional Elements 
      Modifier and TypeOptional Element and Description
      Class<?>[]configuration +
      A custom @Configuration for the feign client.
      +
      booleandecode404 +
      Whether 404s should be decoded instead of throwing FeignExceptions
      +
      Class<?>fallback +
      Fallback class for the specified Feign client interface.
      +
      Class<?>fallbackFactory +
      Define a fallback factory for the specified Feign client interface.
      +
      Stringname +
      The service id with optional protocol prefix.
      +
      Stringpath +
      Path prefix to be used by all method-level mappings.
      +
      booleanprimary +
      Whether to mark the feign proxy as a primary bean.
      +
      Stringqualifier +
      Sets the @Qualifier value for the feign client.
      +
      StringserviceId +
      Deprecated.  +
      use name instead
      +
      +
      Stringurl +
      An absolute URL or resolvable hostname (the protocol is optional).
      +
      Stringvalue +
      The name of the service with optional protocol prefix.
      +
      +
    • +
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Element Detail

      + + + +
        +
      • +

        value

        +
        @AliasFor(value="name")
        +public abstract String value
        +
        The name of the service with optional protocol prefix. Synonym for name. A name must be specified for all clients, whether or not a url is provided. + Can be specified as property key, eg: ${propertyKey}.
        +
        +
        Default:
        +
        ""
        +
        +
      • +
      +
    • +
    +
      +
    • + + +
        +
      • +

        serviceId

        +
        @Deprecated
        +public abstract String serviceId
        +
        Deprecated. use name instead
        +
        The service id with optional protocol prefix. Synonym for value.
        +
        +
        Default:
        +
        ""
        +
        +
      • +
      +
    • +
    +
      +
    • + + +
        +
      • +

        name

        +
        @AliasFor(value="value")
        +public abstract String name
        +
        The service id with optional protocol prefix. Synonym for value.
        +
        +
        Default:
        +
        ""
        +
        +
      • +
      +
    • +
    +
      +
    • + + +
        +
      • +

        qualifier

        +
        public abstract String qualifier
        +
        Sets the @Qualifier value for the feign client.
        +
        +
        Default:
        +
        ""
        +
        +
      • +
      +
    • +
    +
      +
    • + + +
        +
      • +

        url

        +
        public abstract String url
        +
        An absolute URL or resolvable hostname (the protocol is optional).
        +
        +
        Default:
        +
        ""
        +
        +
      • +
      +
    • +
    +
      +
    • + + +
        +
      • +

        decode404

        +
        public abstract boolean decode404
        +
        Whether 404s should be decoded instead of throwing FeignExceptions
        +
        +
        Default:
        +
        false
        +
        +
      • +
      +
    • +
    +
      +
    • + + +
        +
      • +

        configuration

        +
        public abstract Class<?>[] configuration
        +
        A custom @Configuration for the feign client. Can contain override + @Bean definition for the pieces that make up the client, for instance + Decoder, Encoder, Contract.
        +
        +
        See Also:
        +
        for the defaults
        +
        +
        +
        Default:
        +
        {}
        +
        +
      • +
      +
    • +
    +
      +
    • + + +
        +
      • +

        fallback

        +
        public abstract Class<?> fallback
        +
        Fallback class for the specified Feign client interface. The fallback class must + implement the interface annotated by this annotation and be a valid spring bean.
        +
        +
        Default:
        +
        void.class
        +
        +
      • +
      +
    • +
    +
      +
    • + + +
        +
      • +

        fallbackFactory

        +
        public abstract Class<?> fallbackFactory
        +
        Define a fallback factory for the specified Feign client interface. The fallback + factory must produce instances of fallback classes that implement the interface + annotated by FeignClient. The fallback factory must be a valid spring + bean.
        +
        +
        See Also:
        +
        for details.
        +
        +
        +
        Default:
        +
        void.class
        +
        +
      • +
      +
    • +
    +
      +
    • + + +
        +
      • +

        path

        +
        public abstract String path
        +
        Path prefix to be used by all method-level mappings. Can be used with or without + @RibbonClient.
        +
        +
        Default:
        +
        ""
        +
        +
      • +
      +
    • +
    +
      +
    • + + +
        +
      • +

        primary

        +
        public abstract boolean primary
        +
        Whether to mark the feign proxy as a primary bean. Defaults to true.
        +
        +
        Default:
        +
        true
        +
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/FeignClientProperties.FeignClientConfiguration.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/FeignClientProperties.FeignClientConfiguration.html new file mode 100644 index 00000000..3d9820dd --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/FeignClientProperties.FeignClientConfiguration.html @@ -0,0 +1,558 @@ + + + + + + +FeignClientProperties.FeignClientConfiguration (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + + +
+
org.springframework.cloud.openfeign
+

Class FeignClientProperties.FeignClientConfiguration

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • org.springframework.cloud.openfeign.FeignClientProperties.FeignClientConfiguration
    • +
    +
  • +
+
+
    +
  • +
    +
    Enclosing class:
    +
    FeignClientProperties
    +
    +
    +
    +
    public static class FeignClientProperties.FeignClientConfiguration
    +extends Object
    +
  • +
+
+
+ +
+
+
    +
  • + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        FeignClientConfiguration

        +
        public FeignClientConfiguration()
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        getLoggerLevel

        +
        public feign.Logger.Level getLoggerLevel()
        +
      • +
      + + + +
        +
      • +

        setLoggerLevel

        +
        public void setLoggerLevel(feign.Logger.Level loggerLevel)
        +
      • +
      + + + +
        +
      • +

        getConnectTimeout

        +
        public Integer getConnectTimeout()
        +
      • +
      + + + +
        +
      • +

        setConnectTimeout

        +
        public void setConnectTimeout(Integer connectTimeout)
        +
      • +
      + + + +
        +
      • +

        getReadTimeout

        +
        public Integer getReadTimeout()
        +
      • +
      + + + +
        +
      • +

        setReadTimeout

        +
        public void setReadTimeout(Integer readTimeout)
        +
      • +
      + + + +
        +
      • +

        getRetryer

        +
        public Class<feign.Retryer> getRetryer()
        +
      • +
      + + + +
        +
      • +

        setRetryer

        +
        public void setRetryer(Class<feign.Retryer> retryer)
        +
      • +
      + + + +
        +
      • +

        getErrorDecoder

        +
        public Class<feign.codec.ErrorDecoder> getErrorDecoder()
        +
      • +
      + + + +
        +
      • +

        setErrorDecoder

        +
        public void setErrorDecoder(Class<feign.codec.ErrorDecoder> errorDecoder)
        +
      • +
      + + + +
        +
      • +

        getRequestInterceptors

        +
        public List<Class<feign.RequestInterceptor>> getRequestInterceptors()
        +
      • +
      + + + +
        +
      • +

        setRequestInterceptors

        +
        public void setRequestInterceptors(List<Class<feign.RequestInterceptor>> requestInterceptors)
        +
      • +
      + + + +
        +
      • +

        getDecode404

        +
        public Boolean getDecode404()
        +
      • +
      + + + +
        +
      • +

        setDecode404

        +
        public void setDecode404(Boolean decode404)
        +
      • +
      + + + +
        +
      • +

        getDecoder

        +
        public Class<feign.codec.Decoder> getDecoder()
        +
      • +
      + + + +
        +
      • +

        setDecoder

        +
        public void setDecoder(Class<feign.codec.Decoder> decoder)
        +
      • +
      + + + +
        +
      • +

        getEncoder

        +
        public Class<feign.codec.Encoder> getEncoder()
        +
      • +
      + + + +
        +
      • +

        setEncoder

        +
        public void setEncoder(Class<feign.codec.Encoder> encoder)
        +
      • +
      + + + +
        +
      • +

        getContract

        +
        public Class<feign.Contract> getContract()
        +
      • +
      + + + +
        +
      • +

        setContract

        +
        public void setContract(Class<feign.Contract> contract)
        +
      • +
      + + + +
        +
      • +

        equals

        +
        public boolean equals(Object o)
        +
        +
        Overrides:
        +
        equals in class Object
        +
        +
      • +
      + + + +
        +
      • +

        hashCode

        +
        public int hashCode()
        +
        +
        Overrides:
        +
        hashCode in class Object
        +
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/FeignClientProperties.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/FeignClientProperties.html new file mode 100644 index 00000000..74af6464 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/FeignClientProperties.html @@ -0,0 +1,396 @@ + + + + + + +FeignClientProperties (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + + +
+
org.springframework.cloud.openfeign
+

Class FeignClientProperties

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • org.springframework.cloud.openfeign.FeignClientProperties
    • +
    +
  • +
+
+
    +
  • +
    +
    +
    @ConfigurationProperties(value="feign.client")
    +public class FeignClientProperties
    +extends Object
    +
    +
    Author:
    +
    Eko Kurniawan Khannedy
    +
    +
  • +
+
+
+ +
+
+ +
+
+ + + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/FeignClientsConfiguration.HystrixFeignConfiguration.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/FeignClientsConfiguration.HystrixFeignConfiguration.html new file mode 100644 index 00000000..fdd395a2 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/FeignClientsConfiguration.HystrixFeignConfiguration.html @@ -0,0 +1,285 @@ + + + + + + +FeignClientsConfiguration.HystrixFeignConfiguration (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + + +
+
org.springframework.cloud.openfeign
+

Class FeignClientsConfiguration.HystrixFeignConfiguration

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • org.springframework.cloud.openfeign.FeignClientsConfiguration.HystrixFeignConfiguration
    • +
    +
  • +
+
+
    +
  • +
    +
    Enclosing class:
    +
    FeignClientsConfiguration
    +
    +
    +
    +
    @Configuration
    + @ConditionalOnClass(value={com.netflix.hystrix.HystrixCommand.class,feign.hystrix.HystrixFeign.class})
    +protected static class FeignClientsConfiguration.HystrixFeignConfiguration
    +extends Object
    +
  • +
+
+
+ +
+
+
    +
  • + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        HystrixFeignConfiguration

        +
        protected HystrixFeignConfiguration()
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        feignHystrixBuilder

        +
        @Bean
        + @Scope(value="prototype")
        + @ConditionalOnMissingBean
        + @ConditionalOnProperty(name="feign.hystrix.enabled")
        +public feign.Feign.Builder feignHystrixBuilder()
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/FeignClientsConfiguration.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/FeignClientsConfiguration.html new file mode 100644 index 00000000..25dc0e23 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/FeignClientsConfiguration.html @@ -0,0 +1,389 @@ + + + + + + +FeignClientsConfiguration (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + + +
+
org.springframework.cloud.openfeign
+

Class FeignClientsConfiguration

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • org.springframework.cloud.openfeign.FeignClientsConfiguration
    • +
    +
  • +
+
+
    +
  • +
    +
    +
    @Configuration
    +public class FeignClientsConfiguration
    +extends Object
    +
    +
    Author:
    +
    Dave Syer, Venil Noronha
    +
    +
  • +
+
+
+ +
+
+
    +
  • + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        FeignClientsConfiguration

        +
        public FeignClientsConfiguration()
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        feignDecoder

        +
        @Bean
        + @ConditionalOnMissingBean
        +public feign.codec.Decoder feignDecoder()
        +
      • +
      + + + +
        +
      • +

        feignEncoder

        +
        @Bean
        + @ConditionalOnMissingBean
        +public feign.codec.Encoder feignEncoder()
        +
      • +
      + + + +
        +
      • +

        feignContract

        +
        @Bean
        + @ConditionalOnMissingBean
        +public feign.Contract feignContract(org.springframework.core.convert.ConversionService feignConversionService)
        +
      • +
      + + + +
        +
      • +

        feignConversionService

        +
        @Bean
        +public org.springframework.format.support.FormattingConversionService feignConversionService()
        +
      • +
      + + + +
        +
      • +

        feignRetryer

        +
        @Bean
        + @ConditionalOnMissingBean
        +public feign.Retryer feignRetryer()
        +
      • +
      + + + +
        +
      • +

        feignBuilder

        +
        @Bean
        + @Scope(value="prototype")
        + @ConditionalOnMissingBean
        +public feign.Feign.Builder feignBuilder(feign.Retryer retryer)
        +
      • +
      + + + + +
    • +
    +
  • +
+
+
+ + + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/FeignContext.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/FeignContext.html new file mode 100644 index 00000000..9a2e37e5 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/FeignContext.html @@ -0,0 +1,276 @@ + + + + + + +FeignContext (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + + +
+
org.springframework.cloud.openfeign
+

Class FeignContext

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • org.springframework.cloud.context.named.NamedContextFactory<org.springframework.cloud.openfeign.FeignClientSpecification>
    • +
    • +
        +
      • org.springframework.cloud.openfeign.FeignContext
      • +
      +
    • +
    +
  • +
+
+
    +
  • +
    +
    All Implemented Interfaces:
    +
    org.springframework.beans.factory.Aware, org.springframework.beans.factory.DisposableBean, org.springframework.context.ApplicationContextAware
    +
    +
    +
    +
    public class FeignContext
    +extends org.springframework.cloud.context.named.NamedContextFactory<org.springframework.cloud.openfeign.FeignClientSpecification>
    +
    A factory that creates instances of feign classes. It creates a Spring + ApplicationContext per client name, and extracts the beans that it needs from there.
    +
    +
    Author:
    +
    Spencer Gibb, Dave Syer
    +
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Nested Class Summary

      +
        +
      • + + +

        Nested classes/interfaces inherited from class org.springframework.cloud.context.named.NamedContextFactory

        +org.springframework.cloud.context.named.NamedContextFactory.Specification
      • +
      +
    • +
    + +
      +
    • + + +

      Constructor Summary

      + + + + + + + + +
      Constructors 
      Constructor and Description
      FeignContext() 
      +
    • +
    + + +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        FeignContext

        +
        public FeignContext()
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/FeignFormatterRegistrar.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/FeignFormatterRegistrar.html new file mode 100644 index 00000000..db657d59 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/FeignFormatterRegistrar.html @@ -0,0 +1,200 @@ + + + + + + +FeignFormatterRegistrar (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + + +
+
org.springframework.cloud.openfeign
+

Interface FeignFormatterRegistrar

+
+
+
+
    +
  • +
    +
    All Superinterfaces:
    +
    org.springframework.format.FormatterRegistrar
    +
    +
    +
    +
    public interface FeignFormatterRegistrar
    +extends org.springframework.format.FormatterRegistrar
    +
    Allows an application to customize the Feign FormattingConversionService.
    +
    +
    Author:
    +
    Matt Benson
    +
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Method Summary

      +
        +
      • + + +

        Methods inherited from interface org.springframework.format.FormatterRegistrar

        +registerFormatters
      • +
      +
    • +
    +
  • +
+
+
+ + + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/FeignLoggerFactory.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/FeignLoggerFactory.html new file mode 100644 index 00000000..736f68ac --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/FeignLoggerFactory.html @@ -0,0 +1,241 @@ + + + + + + +FeignLoggerFactory (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + + +
+
org.springframework.cloud.openfeign
+

Interface FeignLoggerFactory

+
+
+
+
    +
  • +
    +
    All Known Implementing Classes:
    +
    DefaultFeignLoggerFactory
    +
    +
    +
    +
    public interface FeignLoggerFactory
    +
    Allows an application to use a custom Feign Logger.
    +
    +
    Author:
    +
    Venil Noronha
    +
    +
  • +
+
+
+ +
+
+
    +
  • + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        create

        +
        feign.Logger create(Class<?> type)
        +
        Factory method to provide a Logger for a given Class.
        +
        +
        Parameters:
        +
        type - the Class for which a Logger instance is to be created
        +
        Returns:
        +
        a Logger instance
        +
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/annotation/PathVariableParameterProcessor.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/annotation/PathVariableParameterProcessor.html new file mode 100644 index 00000000..0a9a1892 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/annotation/PathVariableParameterProcessor.html @@ -0,0 +1,341 @@ + + + + + + +PathVariableParameterProcessor (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + + +
+
org.springframework.cloud.openfeign.annotation
+

Class PathVariableParameterProcessor

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • org.springframework.cloud.openfeign.annotation.PathVariableParameterProcessor
    • +
    +
  • +
+
+ +
+
+ +
+
+ +
+
+ + + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/annotation/RequestHeaderParameterProcessor.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/annotation/RequestHeaderParameterProcessor.html new file mode 100644 index 00000000..70bbf12d --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/annotation/RequestHeaderParameterProcessor.html @@ -0,0 +1,341 @@ + + + + + + +RequestHeaderParameterProcessor (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + + +
+
org.springframework.cloud.openfeign.annotation
+

Class RequestHeaderParameterProcessor

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • org.springframework.cloud.openfeign.annotation.RequestHeaderParameterProcessor
    • +
    +
  • +
+
+ +
+
+ +
+
+ +
+
+ + + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/annotation/RequestParamParameterProcessor.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/annotation/RequestParamParameterProcessor.html new file mode 100644 index 00000000..7ff19425 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/annotation/RequestParamParameterProcessor.html @@ -0,0 +1,341 @@ + + + + + + +RequestParamParameterProcessor (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + + +
+
org.springframework.cloud.openfeign.annotation
+

Class RequestParamParameterProcessor

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • org.springframework.cloud.openfeign.annotation.RequestParamParameterProcessor
    • +
    +
  • +
+
+ +
+
+ +
+
+ +
+
+ + + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/annotation/class-use/PathVariableParameterProcessor.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/annotation/class-use/PathVariableParameterProcessor.html new file mode 100644 index 00000000..77b23825 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/annotation/class-use/PathVariableParameterProcessor.html @@ -0,0 +1,126 @@ + + + + + + +Uses of Class org.springframework.cloud.openfeign.annotation.PathVariableParameterProcessor (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Class
org.springframework.cloud.openfeign.annotation.PathVariableParameterProcessor

+
+
No usage of org.springframework.cloud.openfeign.annotation.PathVariableParameterProcessor
+ + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/annotation/class-use/RequestHeaderParameterProcessor.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/annotation/class-use/RequestHeaderParameterProcessor.html new file mode 100644 index 00000000..95f71149 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/annotation/class-use/RequestHeaderParameterProcessor.html @@ -0,0 +1,126 @@ + + + + + + +Uses of Class org.springframework.cloud.openfeign.annotation.RequestHeaderParameterProcessor (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Class
org.springframework.cloud.openfeign.annotation.RequestHeaderParameterProcessor

+
+
No usage of org.springframework.cloud.openfeign.annotation.RequestHeaderParameterProcessor
+ + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/annotation/class-use/RequestParamParameterProcessor.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/annotation/class-use/RequestParamParameterProcessor.html new file mode 100644 index 00000000..520bca5d --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/annotation/class-use/RequestParamParameterProcessor.html @@ -0,0 +1,126 @@ + + + + + + +Uses of Class org.springframework.cloud.openfeign.annotation.RequestParamParameterProcessor (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Class
org.springframework.cloud.openfeign.annotation.RequestParamParameterProcessor

+
+
No usage of org.springframework.cloud.openfeign.annotation.RequestParamParameterProcessor
+ + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/annotation/package-frame.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/annotation/package-frame.html new file mode 100644 index 00000000..7d59a981 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/annotation/package-frame.html @@ -0,0 +1,23 @@ + + + + + + +org.springframework.cloud.openfeign.annotation (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + +

org.springframework.cloud.openfeign.annotation

+ + + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/annotation/package-summary.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/annotation/package-summary.html new file mode 100644 index 00000000..43338882 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/annotation/package-summary.html @@ -0,0 +1,158 @@ + + + + + + +org.springframework.cloud.openfeign.annotation (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + +
+

Package org.springframework.cloud.openfeign.annotation

+
+
+ +
+ + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/annotation/package-tree.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/annotation/package-tree.html new file mode 100644 index 00000000..669e7e6d --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/annotation/package-tree.html @@ -0,0 +1,141 @@ + + + + + + +org.springframework.cloud.openfeign.annotation Class Hierarchy (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + +
+

Hierarchy For Package org.springframework.cloud.openfeign.annotation

+Package Hierarchies: + +
+
+

Class Hierarchy

+ +
+ + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/annotation/package-use.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/annotation/package-use.html new file mode 100644 index 00000000..f83eb25f --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/annotation/package-use.html @@ -0,0 +1,126 @@ + + + + + + +Uses of Package org.springframework.cloud.openfeign.annotation (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Package
org.springframework.cloud.openfeign.annotation

+
+
No usage of org.springframework.cloud.openfeign.annotation
+ + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/class-use/AnnotatedParameterProcessor.AnnotatedParameterContext.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/class-use/AnnotatedParameterProcessor.AnnotatedParameterContext.html new file mode 100644 index 00000000..6a7f906c --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/class-use/AnnotatedParameterProcessor.AnnotatedParameterContext.html @@ -0,0 +1,206 @@ + + + + + + +Uses of Interface org.springframework.cloud.openfeign.AnnotatedParameterProcessor.AnnotatedParameterContext (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Interface
org.springframework.cloud.openfeign.AnnotatedParameterProcessor.AnnotatedParameterContext

+
+
+ +
+ + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/class-use/AnnotatedParameterProcessor.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/class-use/AnnotatedParameterProcessor.html new file mode 100644 index 00000000..09011f49 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/class-use/AnnotatedParameterProcessor.html @@ -0,0 +1,204 @@ + + + + + + +Uses of Interface org.springframework.cloud.openfeign.AnnotatedParameterProcessor (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Interface
org.springframework.cloud.openfeign.AnnotatedParameterProcessor

+
+
+ +
+ + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/class-use/DefaultFeignLoggerFactory.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/class-use/DefaultFeignLoggerFactory.html new file mode 100644 index 00000000..9fc2dcb7 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/class-use/DefaultFeignLoggerFactory.html @@ -0,0 +1,126 @@ + + + + + + +Uses of Class org.springframework.cloud.openfeign.DefaultFeignLoggerFactory (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Class
org.springframework.cloud.openfeign.DefaultFeignLoggerFactory

+
+
No usage of org.springframework.cloud.openfeign.DefaultFeignLoggerFactory
+ + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/class-use/EnableFeignClients.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/class-use/EnableFeignClients.html new file mode 100644 index 00000000..bdb717b5 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/class-use/EnableFeignClients.html @@ -0,0 +1,126 @@ + + + + + + +Uses of Class org.springframework.cloud.openfeign.EnableFeignClients (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Class
org.springframework.cloud.openfeign.EnableFeignClients

+
+
No usage of org.springframework.cloud.openfeign.EnableFeignClients
+ + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/class-use/FeignAutoConfiguration.DefaultFeignTargeterConfiguration.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/class-use/FeignAutoConfiguration.DefaultFeignTargeterConfiguration.html new file mode 100644 index 00000000..876e7b64 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/class-use/FeignAutoConfiguration.DefaultFeignTargeterConfiguration.html @@ -0,0 +1,126 @@ + + + + + + +Uses of Class org.springframework.cloud.openfeign.FeignAutoConfiguration.DefaultFeignTargeterConfiguration (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Class
org.springframework.cloud.openfeign.FeignAutoConfiguration.DefaultFeignTargeterConfiguration

+
+
No usage of org.springframework.cloud.openfeign.FeignAutoConfiguration.DefaultFeignTargeterConfiguration
+ + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/class-use/FeignAutoConfiguration.HttpClientFeignConfiguration.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/class-use/FeignAutoConfiguration.HttpClientFeignConfiguration.html new file mode 100644 index 00000000..6bf616c3 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/class-use/FeignAutoConfiguration.HttpClientFeignConfiguration.html @@ -0,0 +1,126 @@ + + + + + + +Uses of Class org.springframework.cloud.openfeign.FeignAutoConfiguration.HttpClientFeignConfiguration (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Class
org.springframework.cloud.openfeign.FeignAutoConfiguration.HttpClientFeignConfiguration

+
+
No usage of org.springframework.cloud.openfeign.FeignAutoConfiguration.HttpClientFeignConfiguration
+ + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/class-use/FeignAutoConfiguration.HystrixFeignTargeterConfiguration.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/class-use/FeignAutoConfiguration.HystrixFeignTargeterConfiguration.html new file mode 100644 index 00000000..62f0462f --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/class-use/FeignAutoConfiguration.HystrixFeignTargeterConfiguration.html @@ -0,0 +1,126 @@ + + + + + + +Uses of Class org.springframework.cloud.openfeign.FeignAutoConfiguration.HystrixFeignTargeterConfiguration (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Class
org.springframework.cloud.openfeign.FeignAutoConfiguration.HystrixFeignTargeterConfiguration

+
+
No usage of org.springframework.cloud.openfeign.FeignAutoConfiguration.HystrixFeignTargeterConfiguration
+ + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/class-use/FeignAutoConfiguration.OkHttpFeignConfiguration.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/class-use/FeignAutoConfiguration.OkHttpFeignConfiguration.html new file mode 100644 index 00000000..69ba5bee --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/class-use/FeignAutoConfiguration.OkHttpFeignConfiguration.html @@ -0,0 +1,126 @@ + + + + + + +Uses of Class org.springframework.cloud.openfeign.FeignAutoConfiguration.OkHttpFeignConfiguration (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Class
org.springframework.cloud.openfeign.FeignAutoConfiguration.OkHttpFeignConfiguration

+
+
No usage of org.springframework.cloud.openfeign.FeignAutoConfiguration.OkHttpFeignConfiguration
+ + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/class-use/FeignAutoConfiguration.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/class-use/FeignAutoConfiguration.html new file mode 100644 index 00000000..c64e1cd3 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/class-use/FeignAutoConfiguration.html @@ -0,0 +1,126 @@ + + + + + + +Uses of Class org.springframework.cloud.openfeign.FeignAutoConfiguration (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Class
org.springframework.cloud.openfeign.FeignAutoConfiguration

+
+
No usage of org.springframework.cloud.openfeign.FeignAutoConfiguration
+ + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/class-use/FeignClient.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/class-use/FeignClient.html new file mode 100644 index 00000000..636708b4 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/class-use/FeignClient.html @@ -0,0 +1,126 @@ + + + + + + +Uses of Class org.springframework.cloud.openfeign.FeignClient (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Class
org.springframework.cloud.openfeign.FeignClient

+
+
No usage of org.springframework.cloud.openfeign.FeignClient
+ + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/class-use/FeignClientProperties.FeignClientConfiguration.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/class-use/FeignClientProperties.FeignClientConfiguration.html new file mode 100644 index 00000000..ae626a10 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/class-use/FeignClientProperties.FeignClientConfiguration.html @@ -0,0 +1,179 @@ + + + + + + +Uses of Class org.springframework.cloud.openfeign.FeignClientProperties.FeignClientConfiguration (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Class
org.springframework.cloud.openfeign.FeignClientProperties.FeignClientConfiguration

+
+
+ +
+ + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/class-use/FeignClientProperties.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/class-use/FeignClientProperties.html new file mode 100644 index 00000000..a6897586 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/class-use/FeignClientProperties.html @@ -0,0 +1,126 @@ + + + + + + +Uses of Class org.springframework.cloud.openfeign.FeignClientProperties (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Class
org.springframework.cloud.openfeign.FeignClientProperties

+
+
No usage of org.springframework.cloud.openfeign.FeignClientProperties
+ + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/class-use/FeignClientsConfiguration.HystrixFeignConfiguration.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/class-use/FeignClientsConfiguration.HystrixFeignConfiguration.html new file mode 100644 index 00000000..742e0b71 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/class-use/FeignClientsConfiguration.HystrixFeignConfiguration.html @@ -0,0 +1,126 @@ + + + + + + +Uses of Class org.springframework.cloud.openfeign.FeignClientsConfiguration.HystrixFeignConfiguration (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Class
org.springframework.cloud.openfeign.FeignClientsConfiguration.HystrixFeignConfiguration

+
+
No usage of org.springframework.cloud.openfeign.FeignClientsConfiguration.HystrixFeignConfiguration
+ + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/class-use/FeignClientsConfiguration.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/class-use/FeignClientsConfiguration.html new file mode 100644 index 00000000..5449ca4c --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/class-use/FeignClientsConfiguration.html @@ -0,0 +1,126 @@ + + + + + + +Uses of Class org.springframework.cloud.openfeign.FeignClientsConfiguration (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Class
org.springframework.cloud.openfeign.FeignClientsConfiguration

+
+
No usage of org.springframework.cloud.openfeign.FeignClientsConfiguration
+ + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/class-use/FeignContext.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/class-use/FeignContext.html new file mode 100644 index 00000000..b93d1868 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/class-use/FeignContext.html @@ -0,0 +1,166 @@ + + + + + + +Uses of Class org.springframework.cloud.openfeign.FeignContext (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Class
org.springframework.cloud.openfeign.FeignContext

+
+
+ +
+ + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/class-use/FeignFormatterRegistrar.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/class-use/FeignFormatterRegistrar.html new file mode 100644 index 00000000..8dd16b52 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/class-use/FeignFormatterRegistrar.html @@ -0,0 +1,126 @@ + + + + + + +Uses of Interface org.springframework.cloud.openfeign.FeignFormatterRegistrar (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Interface
org.springframework.cloud.openfeign.FeignFormatterRegistrar

+
+
No usage of org.springframework.cloud.openfeign.FeignFormatterRegistrar
+ + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/class-use/FeignLoggerFactory.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/class-use/FeignLoggerFactory.html new file mode 100644 index 00000000..670277e7 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/class-use/FeignLoggerFactory.html @@ -0,0 +1,179 @@ + + + + + + +Uses of Interface org.springframework.cloud.openfeign.FeignLoggerFactory (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Interface
org.springframework.cloud.openfeign.FeignLoggerFactory

+
+
+ +
+ + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/encoding/BaseRequestInterceptor.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/encoding/BaseRequestInterceptor.html new file mode 100644 index 00000000..4bdf9c18 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/encoding/BaseRequestInterceptor.html @@ -0,0 +1,329 @@ + + + + + + +BaseRequestInterceptor (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + + +
+
org.springframework.cloud.openfeign.encoding
+

Class BaseRequestInterceptor

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • org.springframework.cloud.openfeign.encoding.BaseRequestInterceptor
    • +
    +
  • +
+
+ +
+
+ +
+
+
    +
  • + + + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        addHeader

        +
        protected void addHeader(feign.RequestTemplate requestTemplate,
        +                         String name,
        +                         String... values)
        +
        Adds the header if it wasn't yet specified.
        +
        +
        Parameters:
        +
        requestTemplate - the request
        +
        name - the header name
        +
        values - the header values
        +
        +
      • +
      + + + + +
    • +
    +
  • +
+
+
+ + + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/encoding/FeignAcceptGzipEncodingAutoConfiguration.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/encoding/FeignAcceptGzipEncodingAutoConfiguration.html new file mode 100644 index 00000000..11bdd0c9 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/encoding/FeignAcceptGzipEncodingAutoConfiguration.html @@ -0,0 +1,289 @@ + + + + + + +FeignAcceptGzipEncodingAutoConfiguration (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + + +
+
org.springframework.cloud.openfeign.encoding
+

Class FeignAcceptGzipEncodingAutoConfiguration

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • org.springframework.cloud.openfeign.encoding.FeignAcceptGzipEncodingAutoConfiguration
    • +
    +
  • +
+
+
    +
  • +
    +
    +
    @Configuration
    + @EnableConfigurationProperties(value=FeignClientEncodingProperties.class)
    + @ConditionalOnClass(value=feign.Feign.class)
    + @ConditionalOnBean(value=feign.Client.class)
    + @ConditionalOnProperty(value="feign.compression.response.enabled",
    +                       matchIfMissing=false)
    + @ConditionalOnMissingBean(value=okhttp3.OkHttpClient.class)
    + @AutoConfigureAfter(value=FeignAutoConfiguration.class)
    +public class FeignAcceptGzipEncodingAutoConfiguration
    +extends Object
    +
    Configures the Feign response compression.
    +
    +
    Author:
    +
    Jakub Narloch
    +
    See Also:
    +
    FeignAcceptGzipEncodingInterceptor
    +
    +
  • +
+
+
+ +
+
+ +
+
+ + + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/encoding/FeignAcceptGzipEncodingInterceptor.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/encoding/FeignAcceptGzipEncodingInterceptor.html new file mode 100644 index 00000000..c6a2e66a --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/encoding/FeignAcceptGzipEncodingInterceptor.html @@ -0,0 +1,306 @@ + + + + + + +FeignAcceptGzipEncodingInterceptor (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + + +
+
org.springframework.cloud.openfeign.encoding
+

Class FeignAcceptGzipEncodingInterceptor

+
+
+ +
+
    +
  • +
    +
    All Implemented Interfaces:
    +
    feign.RequestInterceptor
    +
    +
    +
    +
    public class FeignAcceptGzipEncodingInterceptor
    +extends BaseRequestInterceptor
    +
    Enables the HTTP response payload compression by specifying the Accept-Encoding headers. + Although this does not yet mean that the requests will be compressed, it requires the remote server + to understand the header and be configured to compress responses. Still no all responses might be compressed + based on the media type matching and other factors like the response content length.
    +
    +
    Author:
    +
    Jakub Narloch
    +
    +
  • +
+
+
+ +
+
+
    +
  • + + + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        apply

        +
        public void apply(feign.RequestTemplate template)
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/encoding/FeignClientEncodingProperties.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/encoding/FeignClientEncodingProperties.html new file mode 100644 index 00000000..60c67bf1 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/encoding/FeignClientEncodingProperties.html @@ -0,0 +1,369 @@ + + + + + + +FeignClientEncodingProperties (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + + +
+
org.springframework.cloud.openfeign.encoding
+

Class FeignClientEncodingProperties

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • org.springframework.cloud.openfeign.encoding.FeignClientEncodingProperties
    • +
    +
  • +
+
+
    +
  • +
    +
    +
    @ConfigurationProperties(value="feign.compression.request")
    +public class FeignClientEncodingProperties
    +extends Object
    +
    The Feign encoding properties.
    +
    +
    Author:
    +
    Jakub Narloch
    +
    +
  • +
+
+
+ +
+
+
    +
  • + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        FeignClientEncodingProperties

        +
        public FeignClientEncodingProperties()
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        getMimeTypes

        +
        public String[] getMimeTypes()
        +
      • +
      + + + +
        +
      • +

        setMimeTypes

        +
        public void setMimeTypes(String[] mimeTypes)
        +
      • +
      + + + +
        +
      • +

        getMinRequestSize

        +
        public int getMinRequestSize()
        +
      • +
      + + + +
        +
      • +

        setMinRequestSize

        +
        public void setMinRequestSize(int minRequestSize)
        +
      • +
      + + + +
        +
      • +

        equals

        +
        public boolean equals(Object o)
        +
        +
        Overrides:
        +
        equals in class Object
        +
        +
      • +
      + + + +
        +
      • +

        hashCode

        +
        public int hashCode()
        +
        +
        Overrides:
        +
        hashCode in class Object
        +
        +
      • +
      + + + + +
    • +
    +
  • +
+
+
+ + + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/encoding/FeignContentGzipEncodingAutoConfiguration.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/encoding/FeignContentGzipEncodingAutoConfiguration.html new file mode 100644 index 00000000..f5699a8f --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/encoding/FeignContentGzipEncodingAutoConfiguration.html @@ -0,0 +1,289 @@ + + + + + + +FeignContentGzipEncodingAutoConfiguration (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + + +
+
org.springframework.cloud.openfeign.encoding
+

Class FeignContentGzipEncodingAutoConfiguration

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • org.springframework.cloud.openfeign.encoding.FeignContentGzipEncodingAutoConfiguration
    • +
    +
  • +
+
+
    +
  • +
    +
    +
    @Configuration
    + @EnableConfigurationProperties(value=FeignClientEncodingProperties.class)
    + @ConditionalOnClass(value=feign.Feign.class)
    + @ConditionalOnBean(value=feign.Client.class)
    + @ConditionalOnMissingBean(value=okhttp3.OkHttpClient.class)
    + @ConditionalOnProperty(value="feign.compression.request.enabled",
    +                       matchIfMissing=false)
    + @AutoConfigureAfter(value=FeignAutoConfiguration.class)
    +public class FeignContentGzipEncodingAutoConfiguration
    +extends Object
    +
    Configures the Feign request compression.
    +
    +
    Author:
    +
    Jakub Narloch
    +
    See Also:
    +
    FeignContentGzipEncodingInterceptor
    +
    +
  • +
+
+
+ +
+
+ +
+
+ + + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/encoding/FeignContentGzipEncodingInterceptor.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/encoding/FeignContentGzipEncodingInterceptor.html new file mode 100644 index 00000000..16666b32 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/encoding/FeignContentGzipEncodingInterceptor.html @@ -0,0 +1,303 @@ + + + + + + +FeignContentGzipEncodingInterceptor (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + + +
+
org.springframework.cloud.openfeign.encoding
+

Class FeignContentGzipEncodingInterceptor

+
+
+ +
+
    +
  • +
    +
    All Implemented Interfaces:
    +
    feign.RequestInterceptor
    +
    +
    +
    +
    public class FeignContentGzipEncodingInterceptor
    +extends BaseRequestInterceptor
    +
    Enables the HTTP request payload compression by specifying the Content-Encoding headers.
    +
    +
    Author:
    +
    Jakub Narloch
    +
    +
  • +
+
+
+ +
+
+
    +
  • + + + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        apply

        +
        public void apply(feign.RequestTemplate template)
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/encoding/HttpEncoding.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/encoding/HttpEncoding.html new file mode 100644 index 00000000..3dade87e --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/encoding/HttpEncoding.html @@ -0,0 +1,329 @@ + + + + + + +HttpEncoding (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + + +
+
org.springframework.cloud.openfeign.encoding
+

Interface HttpEncoding

+
+
+
+
    +
  • +
    +
    +
    public interface HttpEncoding
    +
    Lists all constants used by Feign encoders.
    +
    +
    Author:
    +
    Jakub Narloch
    +
    +
  • +
+
+
+ +
+
+ +
+
+ + + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/encoding/class-use/BaseRequestInterceptor.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/encoding/class-use/BaseRequestInterceptor.html new file mode 100644 index 00000000..102e6292 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/encoding/class-use/BaseRequestInterceptor.html @@ -0,0 +1,174 @@ + + + + + + +Uses of Class org.springframework.cloud.openfeign.encoding.BaseRequestInterceptor (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Class
org.springframework.cloud.openfeign.encoding.BaseRequestInterceptor

+
+
+ +
+ + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/encoding/class-use/FeignAcceptGzipEncodingAutoConfiguration.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/encoding/class-use/FeignAcceptGzipEncodingAutoConfiguration.html new file mode 100644 index 00000000..1ed3c156 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/encoding/class-use/FeignAcceptGzipEncodingAutoConfiguration.html @@ -0,0 +1,126 @@ + + + + + + +Uses of Class org.springframework.cloud.openfeign.encoding.FeignAcceptGzipEncodingAutoConfiguration (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Class
org.springframework.cloud.openfeign.encoding.FeignAcceptGzipEncodingAutoConfiguration

+
+
No usage of org.springframework.cloud.openfeign.encoding.FeignAcceptGzipEncodingAutoConfiguration
+ + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/encoding/class-use/FeignAcceptGzipEncodingInterceptor.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/encoding/class-use/FeignAcceptGzipEncodingInterceptor.html new file mode 100644 index 00000000..7f88c3f7 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/encoding/class-use/FeignAcceptGzipEncodingInterceptor.html @@ -0,0 +1,166 @@ + + + + + + +Uses of Class org.springframework.cloud.openfeign.encoding.FeignAcceptGzipEncodingInterceptor (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Class
org.springframework.cloud.openfeign.encoding.FeignAcceptGzipEncodingInterceptor

+
+
+ +
+ + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/encoding/class-use/FeignClientEncodingProperties.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/encoding/class-use/FeignClientEncodingProperties.html new file mode 100644 index 00000000..3f10aada --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/encoding/class-use/FeignClientEncodingProperties.html @@ -0,0 +1,206 @@ + + + + + + +Uses of Class org.springframework.cloud.openfeign.encoding.FeignClientEncodingProperties (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Class
org.springframework.cloud.openfeign.encoding.FeignClientEncodingProperties

+
+
+ +
+ + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/encoding/class-use/FeignContentGzipEncodingAutoConfiguration.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/encoding/class-use/FeignContentGzipEncodingAutoConfiguration.html new file mode 100644 index 00000000..db6ddc9f --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/encoding/class-use/FeignContentGzipEncodingAutoConfiguration.html @@ -0,0 +1,126 @@ + + + + + + +Uses of Class org.springframework.cloud.openfeign.encoding.FeignContentGzipEncodingAutoConfiguration (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Class
org.springframework.cloud.openfeign.encoding.FeignContentGzipEncodingAutoConfiguration

+
+
No usage of org.springframework.cloud.openfeign.encoding.FeignContentGzipEncodingAutoConfiguration
+ + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/encoding/class-use/FeignContentGzipEncodingInterceptor.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/encoding/class-use/FeignContentGzipEncodingInterceptor.html new file mode 100644 index 00000000..202c8e0b --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/encoding/class-use/FeignContentGzipEncodingInterceptor.html @@ -0,0 +1,166 @@ + + + + + + +Uses of Class org.springframework.cloud.openfeign.encoding.FeignContentGzipEncodingInterceptor (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Class
org.springframework.cloud.openfeign.encoding.FeignContentGzipEncodingInterceptor

+
+
+ +
+ + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/encoding/class-use/HttpEncoding.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/encoding/class-use/HttpEncoding.html new file mode 100644 index 00000000..1240a3a2 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/encoding/class-use/HttpEncoding.html @@ -0,0 +1,126 @@ + + + + + + +Uses of Interface org.springframework.cloud.openfeign.encoding.HttpEncoding (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Interface
org.springframework.cloud.openfeign.encoding.HttpEncoding

+
+
No usage of org.springframework.cloud.openfeign.encoding.HttpEncoding
+ + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/encoding/package-frame.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/encoding/package-frame.html new file mode 100644 index 00000000..acf35c31 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/encoding/package-frame.html @@ -0,0 +1,30 @@ + + + + + + +org.springframework.cloud.openfeign.encoding (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + +

org.springframework.cloud.openfeign.encoding

+ + + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/encoding/package-summary.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/encoding/package-summary.html new file mode 100644 index 00000000..8bebbb4e --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/encoding/package-summary.html @@ -0,0 +1,193 @@ + + + + + + +org.springframework.cloud.openfeign.encoding (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + +
+

Package org.springframework.cloud.openfeign.encoding

+
+
+ +
+ + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/encoding/package-tree.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/encoding/package-tree.html new file mode 100644 index 00000000..ee71b7cc --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/encoding/package-tree.html @@ -0,0 +1,151 @@ + + + + + + +org.springframework.cloud.openfeign.encoding Class Hierarchy (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + +
+

Hierarchy For Package org.springframework.cloud.openfeign.encoding

+Package Hierarchies: + +
+
+

Class Hierarchy

+ +

Interface Hierarchy

+
    +
  • org.springframework.cloud.openfeign.encoding.HttpEncoding
  • +
+
+ + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/encoding/package-use.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/encoding/package-use.html new file mode 100644 index 00000000..744a7a8d --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/encoding/package-use.html @@ -0,0 +1,176 @@ + + + + + + +Uses of Package org.springframework.cloud.openfeign.encoding (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Package
org.springframework.cloud.openfeign.encoding

+
+
+ +
+ + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/package-frame.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/package-frame.html new file mode 100644 index 00000000..edb78e05 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/package-frame.html @@ -0,0 +1,43 @@ + + + + + + +org.springframework.cloud.openfeign (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + +

org.springframework.cloud.openfeign

+ + + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/package-summary.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/package-summary.html new file mode 100644 index 00000000..70e142f1 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/package-summary.html @@ -0,0 +1,245 @@ + + + + + + +org.springframework.cloud.openfeign (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + +
+

Package org.springframework.cloud.openfeign

+
+
+ +
+ + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/package-tree.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/package-tree.html new file mode 100644 index 00000000..ba0ceb26 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/package-tree.html @@ -0,0 +1,169 @@ + + + + + + +org.springframework.cloud.openfeign Class Hierarchy (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + +
+

Hierarchy For Package org.springframework.cloud.openfeign

+Package Hierarchies: + +
+
+

Class Hierarchy

+ +

Interface Hierarchy

+ +

Annotation Type Hierarchy

+ +
+ + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/package-use.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/package-use.html new file mode 100644 index 00000000..702eaa62 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/package-use.html @@ -0,0 +1,221 @@ + + + + + + +Uses of Package org.springframework.cloud.openfeign (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Package
org.springframework.cloud.openfeign

+
+
+ +
+ + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/ribbon/CachingSpringLoadBalancerFactory.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/ribbon/CachingSpringLoadBalancerFactory.html new file mode 100644 index 00000000..02afc029 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/ribbon/CachingSpringLoadBalancerFactory.html @@ -0,0 +1,354 @@ + + + + + + +CachingSpringLoadBalancerFactory (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + + +
+
org.springframework.cloud.openfeign.ribbon
+

Class CachingSpringLoadBalancerFactory

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • org.springframework.cloud.openfeign.ribbon.CachingSpringLoadBalancerFactory
    • +
    +
  • +
+
+
    +
  • +
    +
    +
    public class CachingSpringLoadBalancerFactory
    +extends Object
    +
    Factory for SpringLoadBalancer instances that caches the entries created.
    +
    +
    Author:
    +
    Spencer Gibb, Dave Syer, Ryan Baxter, Gang Li
    +
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Constructor Summary

      + + + + + + + + + + + + + + + + + + + + +
      Constructors 
      Constructor and Description
      CachingSpringLoadBalancerFactory(org.springframework.cloud.netflix.ribbon.SpringClientFactory factory) 
      CachingSpringLoadBalancerFactory(org.springframework.cloud.netflix.ribbon.SpringClientFactory factory, + org.springframework.cloud.client.loadbalancer.LoadBalancedRetryPolicyFactory loadBalancedRetryPolicyFactory) +
      Deprecated. 
      +
      CachingSpringLoadBalancerFactory(org.springframework.cloud.netflix.ribbon.SpringClientFactory factory, + org.springframework.cloud.client.loadbalancer.LoadBalancedRetryPolicyFactory loadBalancedRetryPolicyFactory, + boolean enableRetry) +
      Deprecated. 
      +
      CachingSpringLoadBalancerFactory(org.springframework.cloud.netflix.ribbon.SpringClientFactory factory, + org.springframework.cloud.client.loadbalancer.LoadBalancedRetryPolicyFactory loadBalancedRetryPolicyFactory, + org.springframework.cloud.client.loadbalancer.LoadBalancedBackOffPolicyFactory loadBalancedBackOffPolicyFactory) +
      Deprecated. 
      +
      CachingSpringLoadBalancerFactory(org.springframework.cloud.netflix.ribbon.SpringClientFactory factory, + org.springframework.cloud.client.loadbalancer.LoadBalancedRetryPolicyFactory loadBalancedRetryPolicyFactory, + org.springframework.cloud.client.loadbalancer.LoadBalancedBackOffPolicyFactory loadBalancedBackOffPolicyFactory, + org.springframework.cloud.client.loadbalancer.LoadBalancedRetryListenerFactory loadBalancedRetryListenerFactory) 
      +
    • +
    + + +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        CachingSpringLoadBalancerFactory

        +
        public CachingSpringLoadBalancerFactory(org.springframework.cloud.netflix.ribbon.SpringClientFactory factory)
        +
      • +
      + + + +
        +
      • +

        CachingSpringLoadBalancerFactory

        +
        @Deprecated
        +public CachingSpringLoadBalancerFactory(org.springframework.cloud.netflix.ribbon.SpringClientFactory factory,
        +                                                    org.springframework.cloud.client.loadbalancer.LoadBalancedRetryPolicyFactory loadBalancedRetryPolicyFactory)
        +
        Deprecated. 
        +
      • +
      + + + +
        +
      • +

        CachingSpringLoadBalancerFactory

        +
        @Deprecated
        +public CachingSpringLoadBalancerFactory(org.springframework.cloud.netflix.ribbon.SpringClientFactory factory,
        +                                                    org.springframework.cloud.client.loadbalancer.LoadBalancedRetryPolicyFactory loadBalancedRetryPolicyFactory,
        +                                                    boolean enableRetry)
        +
        Deprecated. 
        +
      • +
      + + + +
        +
      • +

        CachingSpringLoadBalancerFactory

        +
        @Deprecated
        +public CachingSpringLoadBalancerFactory(org.springframework.cloud.netflix.ribbon.SpringClientFactory factory,
        +                                                    org.springframework.cloud.client.loadbalancer.LoadBalancedRetryPolicyFactory loadBalancedRetryPolicyFactory,
        +                                                    org.springframework.cloud.client.loadbalancer.LoadBalancedBackOffPolicyFactory loadBalancedBackOffPolicyFactory)
        +
        Deprecated. 
        +
      • +
      + + + +
        +
      • +

        CachingSpringLoadBalancerFactory

        +
        public CachingSpringLoadBalancerFactory(org.springframework.cloud.netflix.ribbon.SpringClientFactory factory,
        +                                        org.springframework.cloud.client.loadbalancer.LoadBalancedRetryPolicyFactory loadBalancedRetryPolicyFactory,
        +                                        org.springframework.cloud.client.loadbalancer.LoadBalancedBackOffPolicyFactory loadBalancedBackOffPolicyFactory,
        +                                        org.springframework.cloud.client.loadbalancer.LoadBalancedRetryListenerFactory loadBalancedRetryListenerFactory)
        +
      • +
      +
    • +
    + + +
  • +
+
+
+ + + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/ribbon/FeignLoadBalancer.RibbonRequest.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/ribbon/FeignLoadBalancer.RibbonRequest.html new file mode 100644 index 00000000..55942a6b --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/ribbon/FeignLoadBalancer.RibbonRequest.html @@ -0,0 +1,279 @@ + + + + + + +FeignLoadBalancer.RibbonRequest (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + + +
+
org.springframework.cloud.openfeign.ribbon
+

Class FeignLoadBalancer.RibbonRequest

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • com.netflix.client.ClientRequest
    • +
    • +
        +
      • org.springframework.cloud.openfeign.ribbon.FeignLoadBalancer.RibbonRequest
      • +
      +
    • +
    +
  • +
+
+
    +
  • +
    +
    All Implemented Interfaces:
    +
    Cloneable
    +
    +
    +
    Enclosing class:
    +
    FeignLoadBalancer
    +
    +
    +
    +
    protected static class FeignLoadBalancer.RibbonRequest
    +extends com.netflix.client.ClientRequest
    +implements Cloneable
    +
  • +
+
+
+ +
+
+ +
+
+ + + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/ribbon/FeignLoadBalancer.RibbonResponse.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/ribbon/FeignLoadBalancer.RibbonResponse.html new file mode 100644 index 00000000..5a04c3e8 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/ribbon/FeignLoadBalancer.RibbonResponse.html @@ -0,0 +1,345 @@ + + + + + + +FeignLoadBalancer.RibbonResponse (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + + +
+
org.springframework.cloud.openfeign.ribbon
+

Class FeignLoadBalancer.RibbonResponse

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • org.springframework.cloud.openfeign.ribbon.FeignLoadBalancer.RibbonResponse
    • +
    +
  • +
+
+
    +
  • +
    +
    All Implemented Interfaces:
    +
    com.netflix.client.IResponse, Closeable, AutoCloseable
    +
    +
    +
    Enclosing class:
    +
    FeignLoadBalancer
    +
    +
    +
    +
    protected static class FeignLoadBalancer.RibbonResponse
    +extends Object
    +implements com.netflix.client.IResponse
    +
  • +
+
+
+ +
+
+
    +
  • + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        getPayload

        +
        public Object getPayload()
        +                  throws com.netflix.client.ClientException
        +
        +
        Specified by:
        +
        getPayload in interface com.netflix.client.IResponse
        +
        Throws:
        +
        com.netflix.client.ClientException
        +
        +
      • +
      + + + +
        +
      • +

        hasPayload

        +
        public boolean hasPayload()
        +
        +
        Specified by:
        +
        hasPayload in interface com.netflix.client.IResponse
        +
        +
      • +
      + + + +
        +
      • +

        isSuccess

        +
        public boolean isSuccess()
        +
        +
        Specified by:
        +
        isSuccess in interface com.netflix.client.IResponse
        +
        +
      • +
      + + + +
        +
      • +

        getRequestedURI

        +
        public URI getRequestedURI()
        +
        +
        Specified by:
        +
        getRequestedURI in interface com.netflix.client.IResponse
        +
        +
      • +
      + + + +
        +
      • +

        getHeaders

        +
        public Map<String,Collection<String>> getHeaders()
        +
        +
        Specified by:
        +
        getHeaders in interface com.netflix.client.IResponse
        +
        +
      • +
      + + + + +
    • +
    +
  • +
+
+
+ + + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/ribbon/FeignLoadBalancer.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/ribbon/FeignLoadBalancer.html new file mode 100644 index 00000000..3a4f09ae --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/ribbon/FeignLoadBalancer.html @@ -0,0 +1,470 @@ + + + + + + +FeignLoadBalancer (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + + +
+
org.springframework.cloud.openfeign.ribbon
+

Class FeignLoadBalancer

+
+
+ +
+ +
+
+
    +
  • + + + +
      +
    • + + +

      Field Summary

      + + + + + + + + + + + + + + + + + + + + + + +
      Fields 
      Modifier and TypeField and Description
      protected com.netflix.client.config.IClientConfigclientConfig 
      protected intconnectTimeout 
      protected intreadTimeout 
      protected org.springframework.cloud.netflix.ribbon.ServerIntrospectorserverIntrospector 
      +
        +
      • + + +

        Fields inherited from class com.netflix.loadbalancer.LoadBalancerContext

        +clientName, defaultRetryHandler, maxAutoRetries, maxAutoRetriesNextServer, okToRetryOnAllOperations, vipAddresses
      • +
      +
    • +
    + +
      +
    • + + +

      Constructor Summary

      + + + + + + + + +
      Constructors 
      Constructor and Description
      FeignLoadBalancer(com.netflix.loadbalancer.ILoadBalancer lb, + com.netflix.client.config.IClientConfig clientConfig, + org.springframework.cloud.netflix.ribbon.ServerIntrospector serverIntrospector) 
      +
    • +
    + +
      +
    • + + +

      Method Summary

      + + + + + + + + + + + + + + + + + + +
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      FeignLoadBalancer.RibbonResponseexecute(FeignLoadBalancer.RibbonRequest request, + com.netflix.client.config.IClientConfig configOverride) 
      com.netflix.client.RequestSpecificRetryHandlergetRequestSpecificRetryHandler(FeignLoadBalancer.RibbonRequest request, + com.netflix.client.config.IClientConfig requestConfig) 
      URIreconstructURIWithServer(com.netflix.loadbalancer.Server server, + URI original) 
      +
        +
      • + + +

        Methods inherited from class com.netflix.client.AbstractLoadBalancerAwareClient

        +buildLoadBalancerCommand, customizeLoadBalancerCommandBuilder, executeWithLoadBalancer, executeWithLoadBalancer, isCircuitBreakerException, isRetriable, isRetriableException
      • +
      +
        +
      • + + +

        Methods inherited from class com.netflix.loadbalancer.LoadBalancerContext

        +deriveHostAndPortFromVipAddress, deriveSchemeAndPortFromPartialUri, generateNIWSException, getClientName, getDeepestCause, getDefaultPortFromScheme, getExecuteTracer, getLoadBalancer, getMaxAutoRetries, getMaxAutoRetriesNextServer, getNumberRetriesOnSameServer, getRetriesNextServer, getRetryHandler, getServerFromLoadBalancer, getServerStats, handleSameServerRetry, initWithNiwsConfig, isOkToRetryOnAllOperations, noteError, noteOpenConnection, noteRequestCompletion, noteRequestCompletion, noteResponse, setLoadBalancer, setMaxAutoRetries, setMaxAutoRetriesNextServer, setOkToRetryOnAllOperations, setRetryHandler
      • +
      + +
        +
      • + + +

        Methods inherited from interface com.netflix.client.IClientConfigAware

        +initWithNiwsConfig
      • +
      +
    • +
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Field Detail

      + + + +
        +
      • +

        connectTimeout

        +
        protected int connectTimeout
        +
      • +
      + + + +
        +
      • +

        readTimeout

        +
        protected int readTimeout
        +
      • +
      + + + +
        +
      • +

        clientConfig

        +
        protected com.netflix.client.config.IClientConfig clientConfig
        +
      • +
      + + + +
        +
      • +

        serverIntrospector

        +
        protected org.springframework.cloud.netflix.ribbon.ServerIntrospector serverIntrospector
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        FeignLoadBalancer

        +
        public FeignLoadBalancer(com.netflix.loadbalancer.ILoadBalancer lb,
        +                         com.netflix.client.config.IClientConfig clientConfig,
        +                         org.springframework.cloud.netflix.ribbon.ServerIntrospector serverIntrospector)
        +
      • +
      +
    • +
    + + +
  • +
+
+
+ + + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/ribbon/FeignRetryPolicy.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/ribbon/FeignRetryPolicy.html new file mode 100644 index 00000000..e30f9fee --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/ribbon/FeignRetryPolicy.html @@ -0,0 +1,326 @@ + + + + + + +FeignRetryPolicy (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + + +
+
org.springframework.cloud.openfeign.ribbon
+

Class FeignRetryPolicy

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • org.springframework.cloud.client.loadbalancer.InterceptorRetryPolicy
    • +
    • +
        +
      • org.springframework.cloud.openfeign.ribbon.FeignRetryPolicy
      • +
      +
    • +
    +
  • +
+
+
    +
  • +
    +
    All Implemented Interfaces:
    +
    Serializable, org.springframework.retry.RetryPolicy
    +
    +
    +
    +
    public class FeignRetryPolicy
    +extends org.springframework.cloud.client.loadbalancer.InterceptorRetryPolicy
    +
    +
    Author:
    +
    Ryan Baxter
    +
    See Also:
    +
    Serialized Form
    +
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Constructor Summary

      + + + + + + + + +
      Constructors 
      Constructor and Description
      FeignRetryPolicy(org.springframework.http.HttpRequest request, + org.springframework.cloud.client.loadbalancer.LoadBalancedRetryPolicy policy, + org.springframework.cloud.client.loadbalancer.ServiceInstanceChooser serviceInstanceChooser, + String serviceName) 
      +
    • +
    + + +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        FeignRetryPolicy

        +
        public FeignRetryPolicy(org.springframework.http.HttpRequest request,
        +                        org.springframework.cloud.client.loadbalancer.LoadBalancedRetryPolicy policy,
        +                        org.springframework.cloud.client.loadbalancer.ServiceInstanceChooser serviceInstanceChooser,
        +                        String serviceName)
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        canRetry

        +
        public boolean canRetry(org.springframework.retry.RetryContext context)
        +
        +
        Specified by:
        +
        canRetry in interface org.springframework.retry.RetryPolicy
        +
        Overrides:
        +
        canRetry in class org.springframework.cloud.client.loadbalancer.InterceptorRetryPolicy
        +
        +
      • +
      + + + +
        +
      • +

        open

        +
        public org.springframework.retry.RetryContext open(org.springframework.retry.RetryContext parent)
        +
        +
        Specified by:
        +
        open in interface org.springframework.retry.RetryPolicy
        +
        Overrides:
        +
        open in class org.springframework.cloud.client.loadbalancer.InterceptorRetryPolicy
        +
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/ribbon/FeignRibbonClientAutoConfiguration.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/ribbon/FeignRibbonClientAutoConfiguration.html new file mode 100644 index 00000000..55167189 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/ribbon/FeignRibbonClientAutoConfiguration.html @@ -0,0 +1,324 @@ + + + + + + +FeignRibbonClientAutoConfiguration (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + + +
+
org.springframework.cloud.openfeign.ribbon
+

Class FeignRibbonClientAutoConfiguration

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • org.springframework.cloud.openfeign.ribbon.FeignRibbonClientAutoConfiguration
    • +
    +
  • +
+
+
    +
  • +
    +
    +
    @ConditionalOnClass(value={com.netflix.loadbalancer.ILoadBalancer.class,feign.Feign.class})
    + @Configuration
    + @AutoConfigureBefore(value=FeignAutoConfiguration.class)
    + @EnableConfigurationProperties(value=FeignHttpClientProperties.class)
    + @Import(value={org.springframework.cloud.openfeign.ribbon.HttpClientFeignLoadBalancedConfiguration.class,org.springframework.cloud.openfeign.ribbon.OkHttpFeignLoadBalancedConfiguration.class,org.springframework.cloud.openfeign.ribbon.DefaultFeignLoadBalancedConfiguration.class})
    +public class FeignRibbonClientAutoConfiguration
    +extends Object
    +
    Autoconfiguration to be activated if Feign is in use and needs to be use Ribbon as a + load balancer.
    +
    +
    Author:
    +
    Dave Syer
    +
    +
  • +
+
+
+ +
+
+
    +
  • + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        FeignRibbonClientAutoConfiguration

        +
        public FeignRibbonClientAutoConfiguration()
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        cachingLBClientFactory

        +
        @Bean
        + @Primary
        + @ConditionalOnMissingClass(value="org.springframework.retry.support.RetryTemplate")
        +public CachingSpringLoadBalancerFactory cachingLBClientFactory(org.springframework.cloud.netflix.ribbon.SpringClientFactory factory)
        +
      • +
      + + + +
        +
      • +

        retryabeCachingLBClientFactory

        +
        @Bean
        + @Primary
        + @ConditionalOnClass(name="org.springframework.retry.support.RetryTemplate")
        +public CachingSpringLoadBalancerFactory retryabeCachingLBClientFactory(org.springframework.cloud.netflix.ribbon.SpringClientFactory factory,
        +                                                                                                                                                                    org.springframework.cloud.client.loadbalancer.LoadBalancedRetryPolicyFactory retryPolicyFactory,
        +                                                                                                                                                                    org.springframework.cloud.client.loadbalancer.LoadBalancedBackOffPolicyFactory loadBalancedBackOffPolicyFactory,
        +                                                                                                                                                                    org.springframework.cloud.client.loadbalancer.LoadBalancedRetryListenerFactory loadBalancedRetryListenerFactory)
        +
      • +
      + + + +
        +
      • +

        feignRequestOptions

        +
        @Bean
        + @ConditionalOnMissingBean
        +public feign.Request.Options feignRequestOptions()
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/ribbon/LoadBalancerFeignClient.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/ribbon/LoadBalancerFeignClient.html new file mode 100644 index 00000000..66e3742c --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/ribbon/LoadBalancerFeignClient.html @@ -0,0 +1,336 @@ + + + + + + +LoadBalancerFeignClient (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + + +
+
org.springframework.cloud.openfeign.ribbon
+

Class LoadBalancerFeignClient

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • org.springframework.cloud.openfeign.ribbon.LoadBalancerFeignClient
    • +
    +
  • +
+
+
    +
  • +
    +
    All Implemented Interfaces:
    +
    feign.Client
    +
    +
    +
    +
    public class LoadBalancerFeignClient
    +extends Object
    +implements feign.Client
    +
    +
    Author:
    +
    Dave Syer
    +
    +
  • +
+
+
+ +
+
+
    +
  • + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        LoadBalancerFeignClient

        +
        public LoadBalancerFeignClient(feign.Client delegate,
        +                               CachingSpringLoadBalancerFactory lbClientFactory,
        +                               org.springframework.cloud.netflix.ribbon.SpringClientFactory clientFactory)
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        execute

        +
        public feign.Response execute(feign.Request request,
        +                              feign.Request.Options options)
        +                       throws IOException
        +
        +
        Specified by:
        +
        execute in interface feign.Client
        +
        Throws:
        +
        IOException
        +
        +
      • +
      + + + + + + + +
        +
      • +

        getDelegate

        +
        public feign.Client getDelegate()
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/ribbon/RetryableFeignLoadBalancer.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/ribbon/RetryableFeignLoadBalancer.html new file mode 100644 index 00000000..5f0bea6a --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/ribbon/RetryableFeignLoadBalancer.html @@ -0,0 +1,466 @@ + + + + + + +RetryableFeignLoadBalancer (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + + +
+
org.springframework.cloud.openfeign.ribbon
+

Class RetryableFeignLoadBalancer

+
+
+ +
+
    +
  • +
    +
    All Implemented Interfaces:
    +
    com.netflix.client.IClient<FeignLoadBalancer.RibbonRequest,FeignLoadBalancer.RibbonResponse>, com.netflix.client.IClientConfigAware, org.springframework.cloud.client.loadbalancer.ServiceInstanceChooser
    +
    +
    +
    +
    public class RetryableFeignLoadBalancer
    +extends FeignLoadBalancer
    +implements org.springframework.cloud.client.loadbalancer.ServiceInstanceChooser
    +
    A FeignLoadBalancer that leverages Spring Retry to retry failed requests.
    +
    +
    Author:
    +
    Ryan Baxter, Gang Li
    +
    +
  • +
+
+
+
    +
  • + + + + + +
      +
    • + + +

      Constructor Summary

      + + + + + + + + + + + + + + +
      Constructors 
      Constructor and Description
      RetryableFeignLoadBalancer(com.netflix.loadbalancer.ILoadBalancer lb, + com.netflix.client.config.IClientConfig clientConfig, + org.springframework.cloud.netflix.ribbon.ServerIntrospector serverIntrospector, + org.springframework.cloud.client.loadbalancer.LoadBalancedRetryPolicyFactory loadBalancedRetryPolicyFactory) +
      Deprecated. 
      +
      RetryableFeignLoadBalancer(com.netflix.loadbalancer.ILoadBalancer lb, + com.netflix.client.config.IClientConfig clientConfig, + org.springframework.cloud.netflix.ribbon.ServerIntrospector serverIntrospector, + org.springframework.cloud.client.loadbalancer.LoadBalancedRetryPolicyFactory loadBalancedRetryPolicyFactory, + org.springframework.cloud.client.loadbalancer.LoadBalancedBackOffPolicyFactory loadBalancedBackOffPolicyFactory) +
      Deprecated. 
      +
      RetryableFeignLoadBalancer(com.netflix.loadbalancer.ILoadBalancer lb, + com.netflix.client.config.IClientConfig clientConfig, + org.springframework.cloud.netflix.ribbon.ServerIntrospector serverIntrospector, + org.springframework.cloud.client.loadbalancer.LoadBalancedRetryPolicyFactory loadBalancedRetryPolicyFactory, + org.springframework.cloud.client.loadbalancer.LoadBalancedBackOffPolicyFactory loadBalancedBackOffPolicyFactory, + org.springframework.cloud.client.loadbalancer.LoadBalancedRetryListenerFactory loadBalancedRetryListenerFactory) 
      +
    • +
    + +
      +
    • + + +

      Method Summary

      + + + + + + + + + + + + + + + + + + +
      All Methods Instance Methods Concrete Methods 
      Modifier and TypeMethod and Description
      org.springframework.cloud.client.ServiceInstancechoose(String serviceId) 
      FeignLoadBalancer.RibbonResponseexecute(FeignLoadBalancer.RibbonRequest request, + com.netflix.client.config.IClientConfig configOverride) 
      com.netflix.client.RequestSpecificRetryHandlergetRequestSpecificRetryHandler(FeignLoadBalancer.RibbonRequest request, + com.netflix.client.config.IClientConfig requestConfig) 
      + +
        +
      • + + +

        Methods inherited from class com.netflix.client.AbstractLoadBalancerAwareClient

        +buildLoadBalancerCommand, customizeLoadBalancerCommandBuilder, executeWithLoadBalancer, executeWithLoadBalancer, isCircuitBreakerException, isRetriable, isRetriableException
      • +
      +
        +
      • + + +

        Methods inherited from class com.netflix.loadbalancer.LoadBalancerContext

        +deriveHostAndPortFromVipAddress, deriveSchemeAndPortFromPartialUri, generateNIWSException, getClientName, getDeepestCause, getDefaultPortFromScheme, getExecuteTracer, getLoadBalancer, getMaxAutoRetries, getMaxAutoRetriesNextServer, getNumberRetriesOnSameServer, getRetriesNextServer, getRetryHandler, getServerFromLoadBalancer, getServerStats, handleSameServerRetry, initWithNiwsConfig, isOkToRetryOnAllOperations, noteError, noteOpenConnection, noteRequestCompletion, noteRequestCompletion, noteResponse, setLoadBalancer, setMaxAutoRetries, setMaxAutoRetriesNextServer, setOkToRetryOnAllOperations, setRetryHandler
      • +
      + +
        +
      • + + +

        Methods inherited from interface com.netflix.client.IClientConfigAware

        +initWithNiwsConfig
      • +
      +
    • +
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        RetryableFeignLoadBalancer

        +
        @Deprecated
        +public RetryableFeignLoadBalancer(com.netflix.loadbalancer.ILoadBalancer lb,
        +                                              com.netflix.client.config.IClientConfig clientConfig,
        +                                              org.springframework.cloud.netflix.ribbon.ServerIntrospector serverIntrospector,
        +                                              org.springframework.cloud.client.loadbalancer.LoadBalancedRetryPolicyFactory loadBalancedRetryPolicyFactory)
        +
        Deprecated. 
        +
      • +
      + + + +
        +
      • +

        RetryableFeignLoadBalancer

        +
        @Deprecated
        +public RetryableFeignLoadBalancer(com.netflix.loadbalancer.ILoadBalancer lb,
        +                                              com.netflix.client.config.IClientConfig clientConfig,
        +                                              org.springframework.cloud.netflix.ribbon.ServerIntrospector serverIntrospector,
        +                                              org.springframework.cloud.client.loadbalancer.LoadBalancedRetryPolicyFactory loadBalancedRetryPolicyFactory,
        +                                              org.springframework.cloud.client.loadbalancer.LoadBalancedBackOffPolicyFactory loadBalancedBackOffPolicyFactory)
        +
        Deprecated. 
        +
      • +
      + + + +
        +
      • +

        RetryableFeignLoadBalancer

        +
        public RetryableFeignLoadBalancer(com.netflix.loadbalancer.ILoadBalancer lb,
        +                                  com.netflix.client.config.IClientConfig clientConfig,
        +                                  org.springframework.cloud.netflix.ribbon.ServerIntrospector serverIntrospector,
        +                                  org.springframework.cloud.client.loadbalancer.LoadBalancedRetryPolicyFactory loadBalancedRetryPolicyFactory,
        +                                  org.springframework.cloud.client.loadbalancer.LoadBalancedBackOffPolicyFactory loadBalancedBackOffPolicyFactory,
        +                                  org.springframework.cloud.client.loadbalancer.LoadBalancedRetryListenerFactory loadBalancedRetryListenerFactory)
        +
      • +
      +
    • +
    + + +
  • +
+
+
+ + + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/ribbon/RibbonResponseStatusCodeException.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/ribbon/RibbonResponseStatusCodeException.html new file mode 100644 index 00000000..41119239 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/ribbon/RibbonResponseStatusCodeException.html @@ -0,0 +1,328 @@ + + + + + + +RibbonResponseStatusCodeException (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + + +
+
org.springframework.cloud.openfeign.ribbon
+

Class RibbonResponseStatusCodeException

+
+
+ +
+
    +
  • +
    +
    All Implemented Interfaces:
    +
    Serializable
    +
    +
    +
    +
    public class RibbonResponseStatusCodeException
    +extends org.springframework.cloud.client.loadbalancer.RetryableStatusCodeException
    +
    A RetryableStatusCodeException for Responses
    +
    +
    Author:
    +
    Ryan Baxter
    +
    See Also:
    +
    Serialized Form
    +
    +
  • +
+
+
+ +
+
+
    +
  • + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        RibbonResponseStatusCodeException

        +
        public RibbonResponseStatusCodeException(String serviceId,
        +                                         feign.Response response,
        +                                         byte[] body,
        +                                         URI uri)
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        getResponse

        +
        public feign.Response getResponse()
        +
        +
        Overrides:
        +
        getResponse in class org.springframework.cloud.client.loadbalancer.RetryableStatusCodeException
        +
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/ribbon/class-use/CachingSpringLoadBalancerFactory.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/ribbon/class-use/CachingSpringLoadBalancerFactory.html new file mode 100644 index 00000000..83bf9dfc --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/ribbon/class-use/CachingSpringLoadBalancerFactory.html @@ -0,0 +1,186 @@ + + + + + + +Uses of Class org.springframework.cloud.openfeign.ribbon.CachingSpringLoadBalancerFactory (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Class
org.springframework.cloud.openfeign.ribbon.CachingSpringLoadBalancerFactory

+
+
+ +
+ + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/ribbon/class-use/FeignLoadBalancer.RibbonRequest.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/ribbon/class-use/FeignLoadBalancer.RibbonRequest.html new file mode 100644 index 00000000..4f0c8998 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/ribbon/class-use/FeignLoadBalancer.RibbonRequest.html @@ -0,0 +1,182 @@ + + + + + + +Uses of Class org.springframework.cloud.openfeign.ribbon.FeignLoadBalancer.RibbonRequest (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Class
org.springframework.cloud.openfeign.ribbon.FeignLoadBalancer.RibbonRequest

+
+
+ +
+ + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/ribbon/class-use/FeignLoadBalancer.RibbonResponse.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/ribbon/class-use/FeignLoadBalancer.RibbonResponse.html new file mode 100644 index 00000000..6c489592 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/ribbon/class-use/FeignLoadBalancer.RibbonResponse.html @@ -0,0 +1,172 @@ + + + + + + +Uses of Class org.springframework.cloud.openfeign.ribbon.FeignLoadBalancer.RibbonResponse (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Class
org.springframework.cloud.openfeign.ribbon.FeignLoadBalancer.RibbonResponse

+
+
+ +
+ + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/ribbon/class-use/FeignLoadBalancer.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/ribbon/class-use/FeignLoadBalancer.html new file mode 100644 index 00000000..e5de600c --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/ribbon/class-use/FeignLoadBalancer.html @@ -0,0 +1,181 @@ + + + + + + +Uses of Class org.springframework.cloud.openfeign.ribbon.FeignLoadBalancer (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Class
org.springframework.cloud.openfeign.ribbon.FeignLoadBalancer

+
+
+ +
+ + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/ribbon/class-use/FeignRetryPolicy.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/ribbon/class-use/FeignRetryPolicy.html new file mode 100644 index 00000000..919a6f3d --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/ribbon/class-use/FeignRetryPolicy.html @@ -0,0 +1,126 @@ + + + + + + +Uses of Class org.springframework.cloud.openfeign.ribbon.FeignRetryPolicy (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Class
org.springframework.cloud.openfeign.ribbon.FeignRetryPolicy

+
+
No usage of org.springframework.cloud.openfeign.ribbon.FeignRetryPolicy
+ + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/ribbon/class-use/FeignRibbonClientAutoConfiguration.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/ribbon/class-use/FeignRibbonClientAutoConfiguration.html new file mode 100644 index 00000000..fda3f045 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/ribbon/class-use/FeignRibbonClientAutoConfiguration.html @@ -0,0 +1,126 @@ + + + + + + +Uses of Class org.springframework.cloud.openfeign.ribbon.FeignRibbonClientAutoConfiguration (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Class
org.springframework.cloud.openfeign.ribbon.FeignRibbonClientAutoConfiguration

+
+
No usage of org.springframework.cloud.openfeign.ribbon.FeignRibbonClientAutoConfiguration
+ + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/ribbon/class-use/LoadBalancerFeignClient.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/ribbon/class-use/LoadBalancerFeignClient.html new file mode 100644 index 00000000..fd593636 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/ribbon/class-use/LoadBalancerFeignClient.html @@ -0,0 +1,126 @@ + + + + + + +Uses of Class org.springframework.cloud.openfeign.ribbon.LoadBalancerFeignClient (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Class
org.springframework.cloud.openfeign.ribbon.LoadBalancerFeignClient

+
+
No usage of org.springframework.cloud.openfeign.ribbon.LoadBalancerFeignClient
+ + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/ribbon/class-use/RetryableFeignLoadBalancer.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/ribbon/class-use/RetryableFeignLoadBalancer.html new file mode 100644 index 00000000..5f4d09a5 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/ribbon/class-use/RetryableFeignLoadBalancer.html @@ -0,0 +1,126 @@ + + + + + + +Uses of Class org.springframework.cloud.openfeign.ribbon.RetryableFeignLoadBalancer (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Class
org.springframework.cloud.openfeign.ribbon.RetryableFeignLoadBalancer

+
+
No usage of org.springframework.cloud.openfeign.ribbon.RetryableFeignLoadBalancer
+ + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/ribbon/class-use/RibbonResponseStatusCodeException.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/ribbon/class-use/RibbonResponseStatusCodeException.html new file mode 100644 index 00000000..177edd50 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/ribbon/class-use/RibbonResponseStatusCodeException.html @@ -0,0 +1,126 @@ + + + + + + +Uses of Class org.springframework.cloud.openfeign.ribbon.RibbonResponseStatusCodeException (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Class
org.springframework.cloud.openfeign.ribbon.RibbonResponseStatusCodeException

+
+
No usage of org.springframework.cloud.openfeign.ribbon.RibbonResponseStatusCodeException
+ + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/ribbon/package-frame.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/ribbon/package-frame.html new file mode 100644 index 00000000..1f0fc72b --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/ribbon/package-frame.html @@ -0,0 +1,32 @@ + + + + + + +org.springframework.cloud.openfeign.ribbon (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + +

org.springframework.cloud.openfeign.ribbon

+ + + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/ribbon/package-summary.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/ribbon/package-summary.html new file mode 100644 index 00000000..6b3d1229 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/ribbon/package-summary.html @@ -0,0 +1,196 @@ + + + + + + +org.springframework.cloud.openfeign.ribbon (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + +
+

Package org.springframework.cloud.openfeign.ribbon

+
+
+ +
+ + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/ribbon/package-tree.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/ribbon/package-tree.html new file mode 100644 index 00000000..eb011892 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/ribbon/package-tree.html @@ -0,0 +1,182 @@ + + + + + + +org.springframework.cloud.openfeign.ribbon Class Hierarchy (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + +
+

Hierarchy For Package org.springframework.cloud.openfeign.ribbon

+Package Hierarchies: + +
+
+

Class Hierarchy

+ +
+ + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/ribbon/package-use.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/ribbon/package-use.html new file mode 100644 index 00000000..214380df --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/ribbon/package-use.html @@ -0,0 +1,170 @@ + + + + + + +Uses of Package org.springframework.cloud.openfeign.ribbon (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Package
org.springframework.cloud.openfeign.ribbon

+
+
+ +
+ + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/support/FallbackCommand.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/support/FallbackCommand.html new file mode 100644 index 00000000..5788047b --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/support/FallbackCommand.html @@ -0,0 +1,942 @@ + + + + + + +FallbackCommand (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + + +
+
org.springframework.cloud.openfeign.support
+

Class FallbackCommand<T>

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • com.netflix.hystrix.HystrixCommand<T>
    • +
    • +
        +
      • org.springframework.cloud.openfeign.support.FallbackCommand<T>
      • +
      +
    • +
    +
  • +
+
+
    +
  • +
    +
    All Implemented Interfaces:
    +
    com.netflix.hystrix.HystrixExecutable<T>, com.netflix.hystrix.HystrixInvokable<T>, com.netflix.hystrix.HystrixInvokableInfo<T>, com.netflix.hystrix.HystrixObservable<T>
    +
    +
    +
    +
    public class FallbackCommand<T>
    +extends com.netflix.hystrix.HystrixCommand<T>
    +
    Convenience class for implementing feign fallbacks that return HystrixCommand. + Also useful for return types of Observable and Future. + For those return types, just call HystrixCommand.observe() or HystrixCommand.queue() respectively.
    +
    +
    Author:
    +
    Spencer Gibb
    +
    +
  • +
+
+
+ +
+
+
    +
  • + +
      +
    • + + +

      Field Detail

      + + + +
        +
      • +

        circuitBreaker

        +
        protected final com.netflix.hystrix.HystrixCircuitBreaker circuitBreaker
        +
      • +
      + + + +
        +
      • +

        threadPool

        +
        protected final com.netflix.hystrix.HystrixThreadPool threadPool
        +
      • +
      + + + +
        +
      • +

        threadPoolKey

        +
        protected final com.netflix.hystrix.HystrixThreadPoolKey threadPoolKey
        +
      • +
      + + + +
        +
      • +

        properties

        +
        protected final com.netflix.hystrix.HystrixCommandProperties properties
        +
      • +
      + + + +
        +
      • +

        metrics

        +
        protected final com.netflix.hystrix.HystrixCommandMetrics metrics
        +
      • +
      + + + +
        +
      • +

        commandKey

        +
        protected final com.netflix.hystrix.HystrixCommandKey commandKey
        +
      • +
      + + + +
        +
      • +

        commandGroup

        +
        protected final com.netflix.hystrix.HystrixCommandGroupKey commandGroup
        +
      • +
      + + + +
        +
      • +

        eventNotifier

        +
        protected final com.netflix.hystrix.strategy.eventnotifier.HystrixEventNotifier eventNotifier
        +
      • +
      + + + +
        +
      • +

        concurrencyStrategy

        +
        protected final com.netflix.hystrix.strategy.concurrency.HystrixConcurrencyStrategy concurrencyStrategy
        +
      • +
      + + + +
        +
      • +

        executionHook

        +
        protected final com.netflix.hystrix.strategy.executionhook.HystrixCommandExecutionHook executionHook
        +
      • +
      + + + +
        +
      • +

        fallbackSemaphoreOverride

        +
        protected final com.netflix.hystrix.AbstractCommand.TryableSemaphore fallbackSemaphoreOverride
        +
      • +
      + + + +
        +
      • +

        fallbackSemaphorePerCircuit

        +
        protected static final ConcurrentHashMap<String,com.netflix.hystrix.AbstractCommand.TryableSemaphore> fallbackSemaphorePerCircuit
        +
      • +
      + + + +
        +
      • +

        executionSemaphoreOverride

        +
        protected final com.netflix.hystrix.AbstractCommand.TryableSemaphore executionSemaphoreOverride
        +
      • +
      + + + +
        +
      • +

        executionSemaphorePerCircuit

        +
        protected static final ConcurrentHashMap<String,com.netflix.hystrix.AbstractCommand.TryableSemaphore> executionSemaphorePerCircuit
        +
      • +
      + + + +
        +
      • +

        timeoutTimer

        +
        protected final AtomicReference<Reference<com.netflix.hystrix.util.HystrixTimer.TimerListener>> timeoutTimer
        +
      • +
      + + + +
        +
      • +

        commandState

        +
        protected AtomicReference<com.netflix.hystrix.AbstractCommand.CommandState> commandState
        +
      • +
      + + + +
        +
      • +

        threadState

        +
        protected AtomicReference<com.netflix.hystrix.AbstractCommand.ThreadState> threadState
        +
      • +
      + + + +
        +
      • +

        executionResult

        +
        protected volatile com.netflix.hystrix.ExecutionResult executionResult
        +
      • +
      + + + +
        +
      • +

        isResponseFromCache

        +
        protected volatile boolean isResponseFromCache
        +
      • +
      + + + +
        +
      • +

        executionResultAtTimeOfCancellation

        +
        protected volatile com.netflix.hystrix.ExecutionResult executionResultAtTimeOfCancellation
        +
      • +
      + + + +
        +
      • +

        commandStartTimestamp

        +
        protected volatile long commandStartTimestamp
        +
      • +
      + + + +
        +
      • +

        isCommandTimedOut

        +
        protected final AtomicReference<com.netflix.hystrix.AbstractCommand.TimedOutStatus> isCommandTimedOut
        +
      • +
      + + + +
        +
      • +

        endCurrentThreadExecutingCommand

        +
        protected volatile rx.functions.Action0 endCurrentThreadExecutingCommand
        +
      • +
      + + + +
        +
      • +

        requestCache

        +
        protected final com.netflix.hystrix.HystrixRequestCache requestCache
        +
      • +
      + + + +
        +
      • +

        currentRequestLog

        +
        protected final com.netflix.hystrix.HystrixRequestLog currentRequestLog
        +
      • +
      + + + +
        +
      • +

        commandContainsFallback

        +
        protected static ConcurrentHashMap<com.netflix.hystrix.HystrixCommandKey,Boolean> commandContainsFallback
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Constructor Detail

      + + + + + +
        +
      • +

        FallbackCommand

        +
        public FallbackCommand(T result)
        +
      • +
      + + + + + +
        +
      • +

        FallbackCommand

        +
        protected FallbackCommand(T result,
        +                          String groupname)
        +
      • +
      + + + + + +
        +
      • +

        FallbackCommand

        +
        public FallbackCommand(T result,
        +                       com.netflix.hystrix.HystrixCommandGroupKey group)
        +
      • +
      + + + + + +
        +
      • +

        FallbackCommand

        +
        public FallbackCommand(T result,
        +                       com.netflix.hystrix.HystrixCommandGroupKey group,
        +                       int executionIsolationThreadTimeoutInMilliseconds)
        +
      • +
      + + + + + +
        +
      • +

        FallbackCommand

        +
        public FallbackCommand(T result,
        +                       com.netflix.hystrix.HystrixCommandGroupKey group,
        +                       com.netflix.hystrix.HystrixThreadPoolKey threadPool)
        +
      • +
      + + + + + +
        +
      • +

        FallbackCommand

        +
        public FallbackCommand(T result,
        +                       com.netflix.hystrix.HystrixCommandGroupKey group,
        +                       com.netflix.hystrix.HystrixThreadPoolKey threadPool,
        +                       int executionIsolationThreadTimeoutInMilliseconds)
        +
      • +
      + + + + + +
        +
      • +

        FallbackCommand

        +
        public FallbackCommand(T result,
        +                       com.netflix.hystrix.HystrixCommand.Setter setter)
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        run

        +
        protected T run()
        +         throws Exception
        +
        +
        Specified by:
        +
        run in class com.netflix.hystrix.HystrixCommand<T>
        +
        Throws:
        +
        Exception
        +
        +
      • +
      + + + +
        +
      • +

        shouldNotBeWrapped

        +
        protected boolean shouldNotBeWrapped(Throwable arg0)
        +
      • +
      + + + +
        +
      • +

        handleThreadEnd

        +
        protected void handleThreadEnd(com.netflix.hystrix.AbstractCommand<R> arg0)
        +
      • +
      + + + +
        +
      • +

        shouldOutputOnNextEvents

        +
        protected boolean shouldOutputOnNextEvents()
        +
      • +
      + + + +
        +
      • +

        getFallbackSemaphore

        +
        protected com.netflix.hystrix.AbstractCommand.TryableSemaphore getFallbackSemaphore()
        +
      • +
      + + + +
        +
      • +

        getExecutionSemaphore

        +
        protected com.netflix.hystrix.AbstractCommand.TryableSemaphore getExecutionSemaphore()
        +
      • +
      + + + + + + + +
        +
      • +

        getCacheKey

        +
        protected String getCacheKey()
        +
      • +
      + + + +
        +
      • +

        isRequestCachingEnabled

        +
        protected boolean isRequestCachingEnabled()
        +
      • +
      + + + +
        +
      • +

        getLogMessagePrefix

        +
        protected String getLogMessagePrefix()
        +
      • +
      + + + +
        +
      • +

        getExceptionFromThrowable

        +
        protected Exception getExceptionFromThrowable(Throwable arg0)
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/support/FeignHttpClientProperties.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/support/FeignHttpClientProperties.html new file mode 100644 index 00000000..60d74d31 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/support/FeignHttpClientProperties.html @@ -0,0 +1,628 @@ + + + + + + +FeignHttpClientProperties (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + + +
+
org.springframework.cloud.openfeign.support
+

Class FeignHttpClientProperties

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • org.springframework.cloud.openfeign.support.FeignHttpClientProperties
    • +
    +
  • +
+
+
    +
  • +
    +
    +
    @ConfigurationProperties(prefix="feign.httpclient")
    +public class FeignHttpClientProperties
    +extends Object
    +
    +
    Author:
    +
    Ryan Baxter
    +
    +
  • +
+
+
+ +
+
+
    +
  • + +
      +
    • + + +

      Field Detail

      + + + +
        +
      • +

        DEFAULT_DISABLE_SSL_VALIDATION

        +
        public static final boolean DEFAULT_DISABLE_SSL_VALIDATION
        +
        +
        See Also:
        +
        Constant Field Values
        +
        +
      • +
      + + + +
        +
      • +

        DEFAULT_MAX_CONNECTIONS

        +
        public static final int DEFAULT_MAX_CONNECTIONS
        +
        +
        See Also:
        +
        Constant Field Values
        +
        +
      • +
      + + + +
        +
      • +

        DEFAULT_MAX_CONNECTIONS_PER_ROUTE

        +
        public static final int DEFAULT_MAX_CONNECTIONS_PER_ROUTE
        +
        +
        See Also:
        +
        Constant Field Values
        +
        +
      • +
      + + + +
        +
      • +

        DEFAULT_TIME_TO_LIVE

        +
        public static final long DEFAULT_TIME_TO_LIVE
        +
        +
        See Also:
        +
        Constant Field Values
        +
        +
      • +
      + + + +
        +
      • +

        DEFAULT_TIME_TO_LIVE_UNIT

        +
        public static final TimeUnit DEFAULT_TIME_TO_LIVE_UNIT
        +
      • +
      + + + +
        +
      • +

        DEFAULT_FOLLOW_REDIRECTS

        +
        public static final boolean DEFAULT_FOLLOW_REDIRECTS
        +
        +
        See Also:
        +
        Constant Field Values
        +
        +
      • +
      + + + +
        +
      • +

        DEFAULT_CONNECTION_TIMEOUT

        +
        public static final int DEFAULT_CONNECTION_TIMEOUT
        +
        +
        See Also:
        +
        Constant Field Values
        +
        +
      • +
      + + + +
        +
      • +

        DEFAULT_CONNECTION_TIMER_REPEAT

        +
        public static final int DEFAULT_CONNECTION_TIMER_REPEAT
        +
        +
        See Also:
        +
        Constant Field Values
        +
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        FeignHttpClientProperties

        +
        public FeignHttpClientProperties()
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        getConnectionTimerRepeat

        +
        public int getConnectionTimerRepeat()
        +
      • +
      + + + +
        +
      • +

        setConnectionTimerRepeat

        +
        public void setConnectionTimerRepeat(int connectionTimerRepeat)
        +
      • +
      + + + +
        +
      • +

        isDisableSslValidation

        +
        public boolean isDisableSslValidation()
        +
      • +
      + + + +
        +
      • +

        setDisableSslValidation

        +
        public void setDisableSslValidation(boolean disableSslValidation)
        +
      • +
      + + + +
        +
      • +

        getMaxConnections

        +
        public int getMaxConnections()
        +
      • +
      + + + +
        +
      • +

        setMaxConnections

        +
        public void setMaxConnections(int maxConnections)
        +
      • +
      + + + +
        +
      • +

        getMaxConnectionsPerRoute

        +
        public int getMaxConnectionsPerRoute()
        +
      • +
      + + + +
        +
      • +

        setMaxConnectionsPerRoute

        +
        public void setMaxConnectionsPerRoute(int maxConnectionsPerRoute)
        +
      • +
      + + + +
        +
      • +

        getTimeToLive

        +
        public long getTimeToLive()
        +
      • +
      + + + +
        +
      • +

        setTimeToLive

        +
        public void setTimeToLive(long timeToLive)
        +
      • +
      + + + +
        +
      • +

        getTimeToLiveUnit

        +
        public TimeUnit getTimeToLiveUnit()
        +
      • +
      + + + +
        +
      • +

        setTimeToLiveUnit

        +
        public void setTimeToLiveUnit(TimeUnit timeToLiveUnit)
        +
      • +
      + + + +
        +
      • +

        isFollowRedirects

        +
        public boolean isFollowRedirects()
        +
      • +
      + + + +
        +
      • +

        setFollowRedirects

        +
        public void setFollowRedirects(boolean followRedirects)
        +
      • +
      + + + +
        +
      • +

        getConnectionTimeout

        +
        public int getConnectionTimeout()
        +
      • +
      + + + +
        +
      • +

        setConnectionTimeout

        +
        public void setConnectionTimeout(int connectionTimeout)
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/support/FeignUtils.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/support/FeignUtils.html new file mode 100644 index 00000000..ee22e8fd --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/support/FeignUtils.html @@ -0,0 +1,243 @@ + + + + + + +FeignUtils (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + + +
+
org.springframework.cloud.openfeign.support
+

Class FeignUtils

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • org.springframework.cloud.openfeign.support.FeignUtils
    • +
    +
  • +
+
+
    +
  • +
    +
    +
    public class FeignUtils
    +extends Object
    +
    +
    Author:
    +
    Spencer Gibb
    +
    +
  • +
+
+
+ +
+
+
    +
  • + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        FeignUtils

        +
        public FeignUtils()
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/support/ResponseEntityDecoder.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/support/ResponseEntityDecoder.html new file mode 100644 index 00000000..7e104d3c --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/support/ResponseEntityDecoder.html @@ -0,0 +1,310 @@ + + + + + + +ResponseEntityDecoder (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + + +
+
org.springframework.cloud.openfeign.support
+

Class ResponseEntityDecoder

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • org.springframework.cloud.openfeign.support.ResponseEntityDecoder
    • +
    +
  • +
+
+
    +
  • +
    +
    All Implemented Interfaces:
    +
    feign.codec.Decoder
    +
    +
    +
    +
    public class ResponseEntityDecoder
    +extends Object
    +implements feign.codec.Decoder
    +
    Decoder adds compatibility for Spring MVC's ResponseEntity to any other decoder via + composition.
    +
    +
    Author:
    +
    chadjaros
    +
    +
  • +
+
+
+ +
+
+
    +
  • + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        ResponseEntityDecoder

        +
        public ResponseEntityDecoder(feign.codec.Decoder decoder)
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        decode

        +
        public Object decode(feign.Response response,
        +                     Type type)
        +              throws IOException,
        +                     feign.FeignException
        +
        +
        Specified by:
        +
        decode in interface feign.codec.Decoder
        +
        Throws:
        +
        IOException
        +
        feign.FeignException
        +
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/support/SpringDecoder.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/support/SpringDecoder.html new file mode 100644 index 00000000..b12c12d5 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/support/SpringDecoder.html @@ -0,0 +1,308 @@ + + + + + + +SpringDecoder (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + + +
+
org.springframework.cloud.openfeign.support
+

Class SpringDecoder

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • org.springframework.cloud.openfeign.support.SpringDecoder
    • +
    +
  • +
+
+
    +
  • +
    +
    All Implemented Interfaces:
    +
    feign.codec.Decoder
    +
    +
    +
    +
    public class SpringDecoder
    +extends Object
    +implements feign.codec.Decoder
    +
    +
    Author:
    +
    Spencer Gibb
    +
    +
  • +
+
+
+ +
+
+
    +
  • + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        SpringDecoder

        +
        public SpringDecoder(org.springframework.beans.factory.ObjectFactory<org.springframework.boot.autoconfigure.http.HttpMessageConverters> messageConverters)
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        decode

        +
        public Object decode(feign.Response response,
        +                     Type type)
        +              throws IOException,
        +                     feign.FeignException
        +
        +
        Specified by:
        +
        decode in interface feign.codec.Decoder
        +
        Throws:
        +
        IOException
        +
        feign.FeignException
        +
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/support/SpringEncoder.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/support/SpringEncoder.html new file mode 100644 index 00000000..186c3937 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/support/SpringEncoder.html @@ -0,0 +1,323 @@ + + + + + + +SpringEncoder (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + + +
+
org.springframework.cloud.openfeign.support
+

Class SpringEncoder

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • org.springframework.cloud.openfeign.support.SpringEncoder
    • +
    +
  • +
+
+
    +
  • +
    +
    All Implemented Interfaces:
    +
    feign.codec.Encoder
    +
    +
    +
    +
    public class SpringEncoder
    +extends Object
    +implements feign.codec.Encoder
    +
    +
    Author:
    +
    Spencer Gibb
    +
    +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Nested Class Summary

      +
        +
      • + + +

        Nested classes/interfaces inherited from interface feign.codec.Encoder

        +feign.codec.Encoder.Default
      • +
      +
    • +
    + +
      +
    • + + +

      Field Summary

      +
        +
      • + + +

        Fields inherited from interface feign.codec.Encoder

        +MAP_STRING_WILDCARD
      • +
      +
    • +
    + +
      +
    • + + +

      Constructor Summary

      + + + + + + + + +
      Constructors 
      Constructor and Description
      SpringEncoder(org.springframework.beans.factory.ObjectFactory<org.springframework.boot.autoconfigure.http.HttpMessageConverters> messageConverters) 
      +
    • +
    + + +
  • +
+
+
+
    +
  • + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        SpringEncoder

        +
        public SpringEncoder(org.springframework.beans.factory.ObjectFactory<org.springframework.boot.autoconfigure.http.HttpMessageConverters> messageConverters)
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        encode

        +
        public void encode(Object requestBody,
        +                   Type bodyType,
        +                   feign.RequestTemplate request)
        +            throws feign.codec.EncodeException
        +
        +
        Specified by:
        +
        encode in interface feign.codec.Encoder
        +
        Throws:
        +
        feign.codec.EncodeException
        +
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/support/SpringMvcContract.ConvertingExpander.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/support/SpringMvcContract.ConvertingExpander.html new file mode 100644 index 00000000..f840a29a --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/support/SpringMvcContract.ConvertingExpander.html @@ -0,0 +1,286 @@ + + + + + + +SpringMvcContract.ConvertingExpander (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + + +
+
org.springframework.cloud.openfeign.support
+

Class SpringMvcContract.ConvertingExpander

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • org.springframework.cloud.openfeign.support.SpringMvcContract.ConvertingExpander
    • +
    +
  • +
+
+
    +
  • +
    +
    All Implemented Interfaces:
    +
    feign.Param.Expander
    +
    +
    +
    Enclosing class:
    +
    SpringMvcContract
    +
    +
    +
    +
    public static class SpringMvcContract.ConvertingExpander
    +extends Object
    +implements feign.Param.Expander
    +
  • +
+
+
+ +
+
+
    +
  • + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        ConvertingExpander

        +
        public ConvertingExpander(org.springframework.core.convert.ConversionService conversionService)
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        expand

        +
        public String expand(Object value)
        +
        +
        Specified by:
        +
        expand in interface feign.Param.Expander
        +
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/support/SpringMvcContract.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/support/SpringMvcContract.html new file mode 100644 index 00000000..34067f8d --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/support/SpringMvcContract.html @@ -0,0 +1,430 @@ + + + + + + +SpringMvcContract (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + + +
+
org.springframework.cloud.openfeign.support
+

Class SpringMvcContract

+
+
+
    +
  • java.lang.Object
  • +
  • +
      +
    • feign.Contract.BaseContract
    • +
    • +
        +
      • org.springframework.cloud.openfeign.support.SpringMvcContract
      • +
      +
    • +
    +
  • +
+
+
    +
  • +
    +
    All Implemented Interfaces:
    +
    feign.Contract, org.springframework.beans.factory.Aware, org.springframework.context.ResourceLoaderAware
    +
    +
    +
    +
    public class SpringMvcContract
    +extends feign.Contract.BaseContract
    +implements org.springframework.context.ResourceLoaderAware
    +
    +
    Author:
    +
    Spencer Gibb, Abhijit Sarkar
    +
    +
  • +
+
+
+ +
+
+
    +
  • + +
      +
    • + + +

      Constructor Detail

      + + + +
        +
      • +

        SpringMvcContract

        +
        public SpringMvcContract()
        +
      • +
      + + + + + + + +
        +
      • +

        SpringMvcContract

        +
        public SpringMvcContract(List<AnnotatedParameterProcessor> annotatedParameterProcessors,
        +                         org.springframework.core.convert.ConversionService conversionService)
        +
      • +
      +
    • +
    + +
      +
    • + + +

      Method Detail

      + + + +
        +
      • +

        setResourceLoader

        +
        public void setResourceLoader(org.springframework.core.io.ResourceLoader resourceLoader)
        +
        +
        Specified by:
        +
        setResourceLoader in interface org.springframework.context.ResourceLoaderAware
        +
        +
      • +
      + + + +
        +
      • +

        processAnnotationOnClass

        +
        protected void processAnnotationOnClass(feign.MethodMetadata data,
        +                                        Class<?> clz)
        +
        +
        Specified by:
        +
        processAnnotationOnClass in class feign.Contract.BaseContract
        +
        +
      • +
      + + + +
        +
      • +

        parseAndValidateMetadata

        +
        public feign.MethodMetadata parseAndValidateMetadata(Class<?> targetType,
        +                                                     Method method)
        +
        +
        Overrides:
        +
        parseAndValidateMetadata in class feign.Contract.BaseContract
        +
        +
      • +
      + + + +
        +
      • +

        processAnnotationOnMethod

        +
        protected void processAnnotationOnMethod(feign.MethodMetadata data,
        +                                         Annotation methodAnnotation,
        +                                         Method method)
        +
        +
        Specified by:
        +
        processAnnotationOnMethod in class feign.Contract.BaseContract
        +
        +
      • +
      + + + +
        +
      • +

        processAnnotationsOnParameter

        +
        protected boolean processAnnotationsOnParameter(feign.MethodMetadata data,
        +                                                Annotation[] annotations,
        +                                                int paramIndex)
        +
        +
        Specified by:
        +
        processAnnotationsOnParameter in class feign.Contract.BaseContract
        +
        +
      • +
      +
    • +
    +
  • +
+
+
+ + + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/support/class-use/FallbackCommand.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/support/class-use/FallbackCommand.html new file mode 100644 index 00000000..ab37a702 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/support/class-use/FallbackCommand.html @@ -0,0 +1,126 @@ + + + + + + +Uses of Class org.springframework.cloud.openfeign.support.FallbackCommand (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Class
org.springframework.cloud.openfeign.support.FallbackCommand

+
+
No usage of org.springframework.cloud.openfeign.support.FallbackCommand
+ + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/support/class-use/FeignHttpClientProperties.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/support/class-use/FeignHttpClientProperties.html new file mode 100644 index 00000000..20071774 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/support/class-use/FeignHttpClientProperties.html @@ -0,0 +1,184 @@ + + + + + + +Uses of Class org.springframework.cloud.openfeign.support.FeignHttpClientProperties (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Class
org.springframework.cloud.openfeign.support.FeignHttpClientProperties

+
+
+ +
+ + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/support/class-use/FeignUtils.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/support/class-use/FeignUtils.html new file mode 100644 index 00000000..6e338622 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/support/class-use/FeignUtils.html @@ -0,0 +1,126 @@ + + + + + + +Uses of Class org.springframework.cloud.openfeign.support.FeignUtils (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Class
org.springframework.cloud.openfeign.support.FeignUtils

+
+
No usage of org.springframework.cloud.openfeign.support.FeignUtils
+ + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/support/class-use/ResponseEntityDecoder.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/support/class-use/ResponseEntityDecoder.html new file mode 100644 index 00000000..e1f208e4 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/support/class-use/ResponseEntityDecoder.html @@ -0,0 +1,126 @@ + + + + + + +Uses of Class org.springframework.cloud.openfeign.support.ResponseEntityDecoder (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Class
org.springframework.cloud.openfeign.support.ResponseEntityDecoder

+
+
No usage of org.springframework.cloud.openfeign.support.ResponseEntityDecoder
+ + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/support/class-use/SpringDecoder.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/support/class-use/SpringDecoder.html new file mode 100644 index 00000000..160fa6a2 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/support/class-use/SpringDecoder.html @@ -0,0 +1,126 @@ + + + + + + +Uses of Class org.springframework.cloud.openfeign.support.SpringDecoder (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Class
org.springframework.cloud.openfeign.support.SpringDecoder

+
+
No usage of org.springframework.cloud.openfeign.support.SpringDecoder
+ + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/support/class-use/SpringEncoder.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/support/class-use/SpringEncoder.html new file mode 100644 index 00000000..063573ef --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/support/class-use/SpringEncoder.html @@ -0,0 +1,126 @@ + + + + + + +Uses of Class org.springframework.cloud.openfeign.support.SpringEncoder (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Class
org.springframework.cloud.openfeign.support.SpringEncoder

+
+
No usage of org.springframework.cloud.openfeign.support.SpringEncoder
+ + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/support/class-use/SpringMvcContract.ConvertingExpander.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/support/class-use/SpringMvcContract.ConvertingExpander.html new file mode 100644 index 00000000..4e01495a --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/support/class-use/SpringMvcContract.ConvertingExpander.html @@ -0,0 +1,126 @@ + + + + + + +Uses of Class org.springframework.cloud.openfeign.support.SpringMvcContract.ConvertingExpander (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Class
org.springframework.cloud.openfeign.support.SpringMvcContract.ConvertingExpander

+
+
No usage of org.springframework.cloud.openfeign.support.SpringMvcContract.ConvertingExpander
+ + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/support/class-use/SpringMvcContract.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/support/class-use/SpringMvcContract.html new file mode 100644 index 00000000..ee5e5ac0 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/support/class-use/SpringMvcContract.html @@ -0,0 +1,126 @@ + + + + + + +Uses of Class org.springframework.cloud.openfeign.support.SpringMvcContract (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Class
org.springframework.cloud.openfeign.support.SpringMvcContract

+
+
No usage of org.springframework.cloud.openfeign.support.SpringMvcContract
+ + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/support/package-frame.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/support/package-frame.html new file mode 100644 index 00000000..be82a1a5 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/support/package-frame.html @@ -0,0 +1,28 @@ + + + + + + +org.springframework.cloud.openfeign.support (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + +

org.springframework.cloud.openfeign.support

+ + + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/support/package-summary.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/support/package-summary.html new file mode 100644 index 00000000..bf55a9ac --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/support/package-summary.html @@ -0,0 +1,177 @@ + + + + + + +org.springframework.cloud.openfeign.support (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + +
+

Package org.springframework.cloud.openfeign.support

+
+
+ +
+ + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/support/package-tree.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/support/package-tree.html new file mode 100644 index 00000000..34cd0e39 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/support/package-tree.html @@ -0,0 +1,154 @@ + + + + + + +org.springframework.cloud.openfeign.support Class Hierarchy (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + +
+

Hierarchy For Package org.springframework.cloud.openfeign.support

+Package Hierarchies: + +
+
+

Class Hierarchy

+
    +
  • java.lang.Object +
      +
    • feign.Contract.BaseContract (implements feign.Contract) +
        +
      • org.springframework.cloud.openfeign.support.SpringMvcContract (implements org.springframework.context.ResourceLoaderAware)
      • +
      +
    • +
    • org.springframework.cloud.openfeign.support.FeignHttpClientProperties
    • +
    • org.springframework.cloud.openfeign.support.FeignUtils
    • +
    • com.netflix.hystrix.HystrixCommand<R> (implements com.netflix.hystrix.HystrixExecutable<R>, com.netflix.hystrix.HystrixInvokableInfo<R>, com.netflix.hystrix.HystrixObservable<R>) + +
    • +
    • org.springframework.cloud.openfeign.support.ResponseEntityDecoder (implements feign.codec.Decoder)
    • +
    • org.springframework.cloud.openfeign.support.SpringDecoder (implements feign.codec.Decoder)
    • +
    • org.springframework.cloud.openfeign.support.SpringEncoder (implements feign.codec.Encoder)
    • +
    • org.springframework.cloud.openfeign.support.SpringMvcContract.ConvertingExpander (implements feign.Param.Expander)
    • +
    +
  • +
+
+ + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/support/package-use.html b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/support/package-use.html new file mode 100644 index 00000000..af468f34 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/org/springframework/cloud/openfeign/support/package-use.html @@ -0,0 +1,159 @@ + + + + + + +Uses of Package org.springframework.cloud.openfeign.support (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + + + + +
+

Uses of Package
org.springframework.cloud.openfeign.support

+
+
+ +
+ + + + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/overview-frame.html b/spring-cloud-openfeign-core/target/apidocs/overview-frame.html new file mode 100644 index 00000000..455ce42d --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/overview-frame.html @@ -0,0 +1,26 @@ + + + + + + +Overview List (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + +

 

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/overview-summary.html b/spring-cloud-openfeign-core/target/apidocs/overview-summary.html new file mode 100644 index 00000000..5f28ddc5 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/overview-summary.html @@ -0,0 +1,156 @@ + + + + + + +Overview (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + +
+ + + + + + + +
+ + +
+

Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API

+
+ + +
+ + + + + + + +
+ + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/overview-tree.html b/spring-cloud-openfeign-core/target/apidocs/overview-tree.html new file mode 100644 index 00000000..dea5d2f3 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/overview-tree.html @@ -0,0 +1,246 @@ + + + + + + +Class Hierarchy (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + +
+ + + + + + + +
+ + + +
+

Class Hierarchy

+ +

Interface Hierarchy

+ +

Annotation Type Hierarchy

+ +
+ +
+ + + + + + + +
+ + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/package-list b/spring-cloud-openfeign-core/target/apidocs/package-list new file mode 100644 index 00000000..fae86a86 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/package-list @@ -0,0 +1,5 @@ +org.springframework.cloud.openfeign +org.springframework.cloud.openfeign.annotation +org.springframework.cloud.openfeign.encoding +org.springframework.cloud.openfeign.ribbon +org.springframework.cloud.openfeign.support diff --git a/spring-cloud-openfeign-core/target/apidocs/script.js b/spring-cloud-openfeign-core/target/apidocs/script.js new file mode 100644 index 00000000..b3463569 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/script.js @@ -0,0 +1,30 @@ +function show(type) +{ + count = 0; + for (var key in methods) { + var row = document.getElementById(key); + if ((methods[key] & type) != 0) { + row.style.display = ''; + row.className = (count++ % 2) ? rowColor : altColor; + } + else + row.style.display = 'none'; + } + updateTabs(type); +} + +function updateTabs(type) +{ + for (var value in tabs) { + var sNode = document.getElementById(tabs[value][0]); + var spanNode = sNode.firstChild; + if (value == type) { + sNode.className = activeTableTab; + spanNode.innerHTML = tabs[value][1]; + } + else { + sNode.className = tableTab; + spanNode.innerHTML = "" + tabs[value][1] + ""; + } + } +} diff --git a/spring-cloud-openfeign-core/target/apidocs/serialized-form.html b/spring-cloud-openfeign-core/target/apidocs/serialized-form.html new file mode 100644 index 00000000..5012e472 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/serialized-form.html @@ -0,0 +1,170 @@ + + + + + + +Serialized Form (Spring Cloud OpenFeign Core 2.0.0.BUILD-SNAPSHOT API) + + + + + + + + +
+ + + + + + + +
+ + +
+

Serialized Form

+
+
+ +
+ +
+ + + + + + + +
+ + +

Copyright © 2018 Pivotal Software, Inc.. All rights reserved.

+ + diff --git a/spring-cloud-openfeign-core/target/apidocs/stylesheet.css b/spring-cloud-openfeign-core/target/apidocs/stylesheet.css new file mode 100644 index 00000000..98055b22 --- /dev/null +++ b/spring-cloud-openfeign-core/target/apidocs/stylesheet.css @@ -0,0 +1,574 @@ +/* Javadoc style sheet */ +/* +Overall document style +*/ + +@import url('resources/fonts/dejavu.css'); + +body { + background-color:#ffffff; + color:#353833; + font-family:'DejaVu Sans', Arial, Helvetica, sans-serif; + font-size:14px; + margin:0; +} +a:link, a:visited { + text-decoration:none; + color:#4A6782; +} +a:hover, a:focus { + text-decoration:none; + color:#bb7a2a; +} +a:active { + text-decoration:none; + color:#4A6782; +} +a[name] { + color:#353833; +} +a[name]:hover { + text-decoration:none; + color:#353833; +} +pre { + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; +} +h1 { + font-size:20px; +} +h2 { + font-size:18px; +} +h3 { + font-size:16px; + font-style:italic; +} +h4 { + font-size:13px; +} +h5 { + font-size:12px; +} +h6 { + font-size:11px; +} +ul { + list-style-type:disc; +} +code, tt { + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; + padding-top:4px; + margin-top:8px; + line-height:1.4em; +} +dt code { + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; + padding-top:4px; +} +table tr td dt code { + font-family:'DejaVu Sans Mono', monospace; + font-size:14px; + vertical-align:top; + padding-top:4px; +} +sup { + font-size:8px; +} +/* +Document title and Copyright styles +*/ +.clear { + clear:both; + height:0px; + overflow:hidden; +} +.aboutLanguage { + float:right; + padding:0px 21px; + font-size:11px; + z-index:200; + margin-top:-9px; +} +.legalCopy { + margin-left:.5em; +} +.bar a, .bar a:link, .bar a:visited, .bar a:active { + color:#FFFFFF; + text-decoration:none; +} +.bar a:hover, .bar a:focus { + color:#bb7a2a; +} +.tab { + background-color:#0066FF; + color:#ffffff; + padding:8px; + width:5em; + font-weight:bold; +} +/* +Navigation bar styles +*/ +.bar { + background-color:#4D7A97; + color:#FFFFFF; + padding:.8em .5em .4em .8em; + height:auto;/*height:1.8em;*/ + font-size:11px; + margin:0; +} +.topNav { + background-color:#4D7A97; + color:#FFFFFF; + float:left; + padding:0; + width:100%; + clear:right; + height:2.8em; + padding-top:10px; + overflow:hidden; + font-size:12px; +} +.bottomNav { + margin-top:10px; + background-color:#4D7A97; + color:#FFFFFF; + float:left; + padding:0; + width:100%; + clear:right; + height:2.8em; + padding-top:10px; + overflow:hidden; + font-size:12px; +} +.subNav { + background-color:#dee3e9; + float:left; + width:100%; + overflow:hidden; + font-size:12px; +} +.subNav div { + clear:left; + float:left; + padding:0 0 5px 6px; + text-transform:uppercase; +} +ul.navList, ul.subNavList { + float:left; + margin:0 25px 0 0; + padding:0; +} +ul.navList li{ + list-style:none; + float:left; + padding: 5px 6px; + text-transform:uppercase; +} +ul.subNavList li{ + list-style:none; + float:left; +} +.topNav a:link, .topNav a:active, .topNav a:visited, .bottomNav a:link, .bottomNav a:active, .bottomNav a:visited { + color:#FFFFFF; + text-decoration:none; + text-transform:uppercase; +} +.topNav a:hover, .bottomNav a:hover { + text-decoration:none; + color:#bb7a2a; + text-transform:uppercase; +} +.navBarCell1Rev { + background-color:#F8981D; + color:#253441; + margin: auto 5px; +} +.skipNav { + position:absolute; + top:auto; + left:-9999px; + overflow:hidden; +} +/* +Page header and footer styles +*/ +.header, .footer { + clear:both; + margin:0 20px; + padding:5px 0 0 0; +} +.indexHeader { + margin:10px; + position:relative; +} +.indexHeader span{ + margin-right:15px; +} +.indexHeader h1 { + font-size:13px; +} +.title { + color:#2c4557; + margin:10px 0; +} +.subTitle { + margin:5px 0 0 0; +} +.header ul { + margin:0 0 15px 0; + padding:0; +} +.footer ul { + margin:20px 0 5px 0; +} +.header ul li, .footer ul li { + list-style:none; + font-size:13px; +} +/* +Heading styles +*/ +div.details ul.blockList ul.blockList ul.blockList li.blockList h4, div.details ul.blockList ul.blockList ul.blockListLast li.blockList h4 { + background-color:#dee3e9; + border:1px solid #d0d9e0; + margin:0 0 6px -8px; + padding:7px 5px; +} +ul.blockList ul.blockList ul.blockList li.blockList h3 { + background-color:#dee3e9; + border:1px solid #d0d9e0; + margin:0 0 6px -8px; + padding:7px 5px; +} +ul.blockList ul.blockList li.blockList h3 { + padding:0; + margin:15px 0; +} +ul.blockList li.blockList h2 { + padding:0px 0 20px 0; +} +/* +Page layout container styles +*/ +.contentContainer, .sourceContainer, .classUseContainer, .serializedFormContainer, .constantValuesContainer { + clear:both; + padding:10px 20px; + position:relative; +} +.indexContainer { + margin:10px; + position:relative; + font-size:12px; +} +.indexContainer h2 { + font-size:13px; + padding:0 0 3px 0; +} +.indexContainer ul { + margin:0; + padding:0; +} +.indexContainer ul li { + list-style:none; + padding-top:2px; +} +.contentContainer .description dl dt, .contentContainer .details dl dt, .serializedFormContainer dl dt { + font-size:12px; + font-weight:bold; + margin:10px 0 0 0; + color:#4E4E4E; +} +.contentContainer .description dl dd, .contentContainer .details dl dd, .serializedFormContainer dl dd { + margin:5px 0 10px 0px; + font-size:14px; + font-family:'DejaVu Sans Mono',monospace; +} +.serializedFormContainer dl.nameValue dt { + margin-left:1px; + font-size:1.1em; + display:inline; + font-weight:bold; +} +.serializedFormContainer dl.nameValue dd { + margin:0 0 0 1px; + font-size:1.1em; + display:inline; +} +/* +List styles +*/ +ul.horizontal li { + display:inline; + font-size:0.9em; +} +ul.inheritance { + margin:0; + padding:0; +} +ul.inheritance li { + display:inline; + list-style:none; +} +ul.inheritance li ul.inheritance { + margin-left:15px; + padding-left:15px; + padding-top:1px; +} +ul.blockList, ul.blockListLast { + margin:10px 0 10px 0; + padding:0; +} +ul.blockList li.blockList, ul.blockListLast li.blockList { + list-style:none; + margin-bottom:15px; + line-height:1.4; +} +ul.blockList ul.blockList li.blockList, ul.blockList ul.blockListLast li.blockList { + padding:0px 20px 5px 10px; + border:1px solid #ededed; + background-color:#f8f8f8; +} +ul.blockList ul.blockList ul.blockList li.blockList, ul.blockList ul.blockList ul.blockListLast li.blockList { + padding:0 0 5px 8px; + background-color:#ffffff; + border:none; +} +ul.blockList ul.blockList ul.blockList ul.blockList li.blockList { + margin-left:0; + padding-left:0; + padding-bottom:15px; + border:none; +} +ul.blockList ul.blockList ul.blockList ul.blockList li.blockListLast { + list-style:none; + border-bottom:none; + padding-bottom:0; +} +table tr td dl, table tr td dl dt, table tr td dl dd { + margin-top:0; + margin-bottom:1px; +} +/* +Table styles +*/ +.overviewSummary, .memberSummary, .typeSummary, .useSummary, .constantsSummary, .deprecatedSummary { + width:100%; + border-left:1px solid #EEE; + border-right:1px solid #EEE; + border-bottom:1px solid #EEE; +} +.overviewSummary, .memberSummary { + padding:0px; +} +.overviewSummary caption, .memberSummary caption, .typeSummary caption, +.useSummary caption, .constantsSummary caption, .deprecatedSummary caption { + position:relative; + text-align:left; + background-repeat:no-repeat; + color:#253441; + font-weight:bold; + clear:none; + overflow:hidden; + padding:0px; + padding-top:10px; + padding-left:1px; + margin:0px; + white-space:pre; +} +.overviewSummary caption a:link, .memberSummary caption a:link, .typeSummary caption a:link, +.useSummary caption a:link, .constantsSummary caption a:link, .deprecatedSummary caption a:link, +.overviewSummary caption a:hover, .memberSummary caption a:hover, .typeSummary caption a:hover, +.useSummary caption a:hover, .constantsSummary caption a:hover, .deprecatedSummary caption a:hover, +.overviewSummary caption a:active, .memberSummary caption a:active, .typeSummary caption a:active, +.useSummary caption a:active, .constantsSummary caption a:active, .deprecatedSummary caption a:active, +.overviewSummary caption a:visited, .memberSummary caption a:visited, .typeSummary caption a:visited, +.useSummary caption a:visited, .constantsSummary caption a:visited, .deprecatedSummary caption a:visited { + color:#FFFFFF; +} +.overviewSummary caption span, .memberSummary caption span, .typeSummary caption span, +.useSummary caption span, .constantsSummary caption span, .deprecatedSummary caption span { + white-space:nowrap; + padding-top:5px; + padding-left:12px; + padding-right:12px; + padding-bottom:7px; + display:inline-block; + float:left; + background-color:#F8981D; + border: none; + height:16px; +} +.memberSummary caption span.activeTableTab span { + white-space:nowrap; + padding-top:5px; + padding-left:12px; + padding-right:12px; + margin-right:3px; + display:inline-block; + float:left; + background-color:#F8981D; + height:16px; +} +.memberSummary caption span.tableTab span { + white-space:nowrap; + padding-top:5px; + padding-left:12px; + padding-right:12px; + margin-right:3px; + display:inline-block; + float:left; + background-color:#4D7A97; + height:16px; +} +.memberSummary caption span.tableTab, .memberSummary caption span.activeTableTab { + padding-top:0px; + padding-left:0px; + padding-right:0px; + background-image:none; + float:none; + display:inline; +} +.overviewSummary .tabEnd, .memberSummary .tabEnd, .typeSummary .tabEnd, +.useSummary .tabEnd, .constantsSummary .tabEnd, .deprecatedSummary .tabEnd { + display:none; + width:5px; + position:relative; + float:left; + background-color:#F8981D; +} +.memberSummary .activeTableTab .tabEnd { + display:none; + width:5px; + margin-right:3px; + position:relative; + float:left; + background-color:#F8981D; +} +.memberSummary .tableTab .tabEnd { + display:none; + width:5px; + margin-right:3px; + position:relative; + background-color:#4D7A97; + float:left; + +} +.overviewSummary td, .memberSummary td, .typeSummary td, +.useSummary td, .constantsSummary td, .deprecatedSummary td { + text-align:left; + padding:0px 0px 12px 10px; +} +th.colOne, th.colFirst, th.colLast, .useSummary th, .constantsSummary th, +td.colOne, td.colFirst, td.colLast, .useSummary td, .constantsSummary td{ + vertical-align:top; + padding-right:0px; + padding-top:8px; + padding-bottom:3px; +} +th.colFirst, th.colLast, th.colOne, .constantsSummary th { + background:#dee3e9; + text-align:left; + padding:8px 3px 3px 7px; +} +td.colFirst, th.colFirst { + white-space:nowrap; + font-size:13px; +} +td.colLast, th.colLast { + font-size:13px; +} +td.colOne, th.colOne { + font-size:13px; +} +.overviewSummary td.colFirst, .overviewSummary th.colFirst, +.useSummary td.colFirst, .useSummary th.colFirst, +.overviewSummary td.colOne, .overviewSummary th.colOne, +.memberSummary td.colFirst, .memberSummary th.colFirst, +.memberSummary td.colOne, .memberSummary th.colOne, +.typeSummary td.colFirst{ + width:25%; + vertical-align:top; +} +td.colOne a:link, td.colOne a:active, td.colOne a:visited, td.colOne a:hover, td.colFirst a:link, td.colFirst a:active, td.colFirst a:visited, td.colFirst a:hover, td.colLast a:link, td.colLast a:active, td.colLast a:visited, td.colLast a:hover, .constantValuesContainer td a:link, .constantValuesContainer td a:active, .constantValuesContainer td a:visited, .constantValuesContainer td a:hover { + font-weight:bold; +} +.tableSubHeadingColor { + background-color:#EEEEFF; +} +.altColor { + background-color:#FFFFFF; +} +.rowColor { + background-color:#EEEEEF; +} +/* +Content styles +*/ +.description pre { + margin-top:0; +} +.deprecatedContent { + margin:0; + padding:10px 0; +} +.docSummary { + padding:0; +} + +ul.blockList ul.blockList ul.blockList li.blockList h3 { + font-style:normal; +} + +div.block { + font-size:14px; + font-family:'DejaVu Serif', Georgia, "Times New Roman", Times, serif; +} + +td.colLast div { + padding-top:0px; +} + + +td.colLast a { + padding-bottom:3px; +} +/* +Formatting effect styles +*/ +.sourceLineNo { + color:green; + padding:0 30px 0 0; +} +h1.hidden { + visibility:hidden; + overflow:hidden; + font-size:10px; +} +.block { + display:block; + margin:3px 10px 2px 0px; + color:#474747; +} +.deprecatedLabel, .descfrmTypeLabel, .memberNameLabel, .memberNameLink, +.overrideSpecifyLabel, .packageHierarchyLabel, .paramLabel, .returnLabel, +.seeLabel, .simpleTagLabel, .throwsLabel, .typeNameLabel, .typeNameLink { + font-weight:bold; +} +.deprecationComment, .emphasizedPhrase, .interfaceName { + font-style:italic; +} + +div.block div.block span.deprecationComment, div.block div.block span.emphasizedPhrase, +div.block div.block span.interfaceName { + font-style:normal; +} + +div.contentContainer ul.blockList li.blockList h2{ + padding-bottom:0px; +} diff --git a/spring-cloud-openfeign-core/target/classes/META-INF/spring.factories b/spring-cloud-openfeign-core/target/classes/META-INF/spring.factories new file mode 100644 index 00000000..51c962ab --- /dev/null +++ b/spring-cloud-openfeign-core/target/classes/META-INF/spring.factories @@ -0,0 +1,5 @@ +org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ +org.springframework.cloud.openfeign.ribbon.FeignRibbonClientAutoConfiguration,\ +org.springframework.cloud.openfeign.FeignAutoConfiguration,\ +org.springframework.cloud.openfeign.encoding.FeignAcceptGzipEncodingAutoConfiguration,\ +org.springframework.cloud.openfeign.encoding.FeignContentGzipEncodingAutoConfiguration diff --git a/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/AnnotatedParameterProcessor$AnnotatedParameterContext.class b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/AnnotatedParameterProcessor$AnnotatedParameterContext.class new file mode 100644 index 00000000..b2c5b4d2 Binary files /dev/null and b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/AnnotatedParameterProcessor$AnnotatedParameterContext.class differ diff --git a/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/AnnotatedParameterProcessor.class b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/AnnotatedParameterProcessor.class new file mode 100644 index 00000000..258a3ac1 Binary files /dev/null and b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/AnnotatedParameterProcessor.class differ diff --git a/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/DefaultFeignLoggerFactory.class b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/DefaultFeignLoggerFactory.class new file mode 100644 index 00000000..d57e8f95 Binary files /dev/null and b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/DefaultFeignLoggerFactory.class differ diff --git a/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/DefaultTargeter.class b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/DefaultTargeter.class new file mode 100644 index 00000000..549f8b0d Binary files /dev/null and b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/DefaultTargeter.class differ diff --git a/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/EnableFeignClients.class b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/EnableFeignClients.class new file mode 100644 index 00000000..6f4a110b Binary files /dev/null and b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/EnableFeignClients.class differ diff --git a/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/FeignAutoConfiguration$DefaultFeignTargeterConfiguration.class b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/FeignAutoConfiguration$DefaultFeignTargeterConfiguration.class new file mode 100644 index 00000000..5b376312 Binary files /dev/null and b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/FeignAutoConfiguration$DefaultFeignTargeterConfiguration.class differ diff --git a/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/FeignAutoConfiguration$HttpClientFeignConfiguration$1.class b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/FeignAutoConfiguration$HttpClientFeignConfiguration$1.class new file mode 100644 index 00000000..e1dd23c0 Binary files /dev/null and b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/FeignAutoConfiguration$HttpClientFeignConfiguration$1.class differ diff --git a/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/FeignAutoConfiguration$HttpClientFeignConfiguration.class b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/FeignAutoConfiguration$HttpClientFeignConfiguration.class new file mode 100644 index 00000000..b407607c Binary files /dev/null and b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/FeignAutoConfiguration$HttpClientFeignConfiguration.class differ diff --git a/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/FeignAutoConfiguration$HystrixFeignTargeterConfiguration.class b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/FeignAutoConfiguration$HystrixFeignTargeterConfiguration.class new file mode 100644 index 00000000..e3bd7326 Binary files /dev/null and b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/FeignAutoConfiguration$HystrixFeignTargeterConfiguration.class differ diff --git a/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/FeignAutoConfiguration$OkHttpFeignConfiguration.class b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/FeignAutoConfiguration$OkHttpFeignConfiguration.class new file mode 100644 index 00000000..cbe79a65 Binary files /dev/null and b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/FeignAutoConfiguration$OkHttpFeignConfiguration.class differ diff --git a/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/FeignAutoConfiguration.class b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/FeignAutoConfiguration.class new file mode 100644 index 00000000..e3e4f91f Binary files /dev/null and b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/FeignAutoConfiguration.class differ diff --git a/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/FeignClient.class b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/FeignClient.class new file mode 100644 index 00000000..6a1dec85 Binary files /dev/null and b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/FeignClient.class differ diff --git a/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/FeignClientFactoryBean.class b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/FeignClientFactoryBean.class new file mode 100644 index 00000000..3d9199cb Binary files /dev/null and b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/FeignClientFactoryBean.class differ diff --git a/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/FeignClientProperties$FeignClientConfiguration.class b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/FeignClientProperties$FeignClientConfiguration.class new file mode 100644 index 00000000..cd195ee5 Binary files /dev/null and b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/FeignClientProperties$FeignClientConfiguration.class differ diff --git a/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/FeignClientProperties.class b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/FeignClientProperties.class new file mode 100644 index 00000000..98e5c0f7 Binary files /dev/null and b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/FeignClientProperties.class differ diff --git a/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/FeignClientSpecification.class b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/FeignClientSpecification.class new file mode 100644 index 00000000..01936080 Binary files /dev/null and b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/FeignClientSpecification.class differ diff --git a/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/FeignClientsConfiguration$HystrixFeignConfiguration.class b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/FeignClientsConfiguration$HystrixFeignConfiguration.class new file mode 100644 index 00000000..be892672 Binary files /dev/null and b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/FeignClientsConfiguration$HystrixFeignConfiguration.class differ diff --git a/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/FeignClientsConfiguration.class b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/FeignClientsConfiguration.class new file mode 100644 index 00000000..ee5c1d71 Binary files /dev/null and b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/FeignClientsConfiguration.class differ diff --git a/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/FeignClientsRegistrar$1.class b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/FeignClientsRegistrar$1.class new file mode 100644 index 00000000..4579d41a Binary files /dev/null and b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/FeignClientsRegistrar$1.class differ diff --git a/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/FeignClientsRegistrar$2.class b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/FeignClientsRegistrar$2.class new file mode 100644 index 00000000..a98e33bc Binary files /dev/null and b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/FeignClientsRegistrar$2.class differ diff --git a/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/FeignClientsRegistrar$AllTypeFilter.class b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/FeignClientsRegistrar$AllTypeFilter.class new file mode 100644 index 00000000..8c85b5dd Binary files /dev/null and b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/FeignClientsRegistrar$AllTypeFilter.class differ diff --git a/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/FeignClientsRegistrar.class b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/FeignClientsRegistrar.class new file mode 100644 index 00000000..5c8ff6d8 Binary files /dev/null and b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/FeignClientsRegistrar.class differ diff --git a/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/FeignContext.class b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/FeignContext.class new file mode 100644 index 00000000..2eb220e1 Binary files /dev/null and b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/FeignContext.class differ diff --git a/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/FeignFormatterRegistrar.class b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/FeignFormatterRegistrar.class new file mode 100644 index 00000000..8b0944f2 Binary files /dev/null and b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/FeignFormatterRegistrar.class differ diff --git a/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/FeignLoggerFactory.class b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/FeignLoggerFactory.class new file mode 100644 index 00000000..f9a1b644 Binary files /dev/null and b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/FeignLoggerFactory.class differ diff --git a/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/HystrixTargeter.class b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/HystrixTargeter.class new file mode 100644 index 00000000..006d2a6e Binary files /dev/null and b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/HystrixTargeter.class differ diff --git a/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/Targeter.class b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/Targeter.class new file mode 100644 index 00000000..c1662219 Binary files /dev/null and b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/Targeter.class differ diff --git a/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/annotation/PathVariableParameterProcessor.class b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/annotation/PathVariableParameterProcessor.class new file mode 100644 index 00000000..c1823a2a Binary files /dev/null and b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/annotation/PathVariableParameterProcessor.class differ diff --git a/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/annotation/RequestHeaderParameterProcessor.class b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/annotation/RequestHeaderParameterProcessor.class new file mode 100644 index 00000000..d6ed811f Binary files /dev/null and b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/annotation/RequestHeaderParameterProcessor.class differ diff --git a/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/annotation/RequestParamParameterProcessor.class b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/annotation/RequestParamParameterProcessor.class new file mode 100644 index 00000000..6722a50f Binary files /dev/null and b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/annotation/RequestParamParameterProcessor.class differ diff --git a/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/encoding/BaseRequestInterceptor.class b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/encoding/BaseRequestInterceptor.class new file mode 100644 index 00000000..02591872 Binary files /dev/null and b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/encoding/BaseRequestInterceptor.class differ diff --git a/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/encoding/FeignAcceptGzipEncodingAutoConfiguration.class b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/encoding/FeignAcceptGzipEncodingAutoConfiguration.class new file mode 100644 index 00000000..c7c550c7 Binary files /dev/null and b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/encoding/FeignAcceptGzipEncodingAutoConfiguration.class differ diff --git a/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/encoding/FeignAcceptGzipEncodingInterceptor.class b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/encoding/FeignAcceptGzipEncodingInterceptor.class new file mode 100644 index 00000000..0edf2d0d Binary files /dev/null and b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/encoding/FeignAcceptGzipEncodingInterceptor.class differ diff --git a/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/encoding/FeignClientEncodingProperties.class b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/encoding/FeignClientEncodingProperties.class new file mode 100644 index 00000000..a03d16f5 Binary files /dev/null and b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/encoding/FeignClientEncodingProperties.class differ diff --git a/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/encoding/FeignContentGzipEncodingAutoConfiguration.class b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/encoding/FeignContentGzipEncodingAutoConfiguration.class new file mode 100644 index 00000000..563187eb Binary files /dev/null and b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/encoding/FeignContentGzipEncodingAutoConfiguration.class differ diff --git a/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/encoding/FeignContentGzipEncodingInterceptor.class b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/encoding/FeignContentGzipEncodingInterceptor.class new file mode 100644 index 00000000..8a1da3a3 Binary files /dev/null and b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/encoding/FeignContentGzipEncodingInterceptor.class differ diff --git a/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/encoding/HttpEncoding.class b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/encoding/HttpEncoding.class new file mode 100644 index 00000000..5f6f8c12 Binary files /dev/null and b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/encoding/HttpEncoding.class differ diff --git a/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/ribbon/CachingSpringLoadBalancerFactory.class b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/ribbon/CachingSpringLoadBalancerFactory.class new file mode 100644 index 00000000..9d1a3492 Binary files /dev/null and b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/ribbon/CachingSpringLoadBalancerFactory.class differ diff --git a/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/ribbon/DefaultFeignLoadBalancedConfiguration.class b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/ribbon/DefaultFeignLoadBalancedConfiguration.class new file mode 100644 index 00000000..8b3413ce Binary files /dev/null and b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/ribbon/DefaultFeignLoadBalancedConfiguration.class differ diff --git a/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/ribbon/FeignLoadBalancer$RibbonRequest$1.class b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/ribbon/FeignLoadBalancer$RibbonRequest$1.class new file mode 100644 index 00000000..62af9ce2 Binary files /dev/null and b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/ribbon/FeignLoadBalancer$RibbonRequest$1.class differ diff --git a/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/ribbon/FeignLoadBalancer$RibbonRequest.class b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/ribbon/FeignLoadBalancer$RibbonRequest.class new file mode 100644 index 00000000..4d9f5a91 Binary files /dev/null and b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/ribbon/FeignLoadBalancer$RibbonRequest.class differ diff --git a/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/ribbon/FeignLoadBalancer$RibbonResponse.class b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/ribbon/FeignLoadBalancer$RibbonResponse.class new file mode 100644 index 00000000..27fe4cda Binary files /dev/null and b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/ribbon/FeignLoadBalancer$RibbonResponse.class differ diff --git a/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/ribbon/FeignLoadBalancer.class b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/ribbon/FeignLoadBalancer.class new file mode 100644 index 00000000..de8d810d Binary files /dev/null and b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/ribbon/FeignLoadBalancer.class differ diff --git a/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/ribbon/FeignRetryPolicy$FeignRetryPolicyServiceInstance.class b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/ribbon/FeignRetryPolicy$FeignRetryPolicyServiceInstance.class new file mode 100644 index 00000000..85682b99 Binary files /dev/null and b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/ribbon/FeignRetryPolicy$FeignRetryPolicyServiceInstance.class differ diff --git a/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/ribbon/FeignRetryPolicy.class b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/ribbon/FeignRetryPolicy.class new file mode 100644 index 00000000..69fce423 Binary files /dev/null and b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/ribbon/FeignRetryPolicy.class differ diff --git a/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/ribbon/FeignRibbonClientAutoConfiguration.class b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/ribbon/FeignRibbonClientAutoConfiguration.class new file mode 100644 index 00000000..49bf3817 Binary files /dev/null and b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/ribbon/FeignRibbonClientAutoConfiguration.class differ diff --git a/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/ribbon/HttpClientFeignLoadBalancedConfiguration$HttpClientFeignConfiguration$1.class b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/ribbon/HttpClientFeignLoadBalancedConfiguration$HttpClientFeignConfiguration$1.class new file mode 100644 index 00000000..2b3b81b0 Binary files /dev/null and b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/ribbon/HttpClientFeignLoadBalancedConfiguration$HttpClientFeignConfiguration$1.class differ diff --git a/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/ribbon/HttpClientFeignLoadBalancedConfiguration$HttpClientFeignConfiguration.class b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/ribbon/HttpClientFeignLoadBalancedConfiguration$HttpClientFeignConfiguration.class new file mode 100644 index 00000000..7a4d0c21 Binary files /dev/null and b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/ribbon/HttpClientFeignLoadBalancedConfiguration$HttpClientFeignConfiguration.class differ diff --git a/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/ribbon/HttpClientFeignLoadBalancedConfiguration.class b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/ribbon/HttpClientFeignLoadBalancedConfiguration.class new file mode 100644 index 00000000..2c9a5b39 Binary files /dev/null and b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/ribbon/HttpClientFeignLoadBalancedConfiguration.class differ diff --git a/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/ribbon/LoadBalancerFeignClient$FeignOptionsClientConfig.class b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/ribbon/LoadBalancerFeignClient$FeignOptionsClientConfig.class new file mode 100644 index 00000000..55c617dc Binary files /dev/null and b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/ribbon/LoadBalancerFeignClient$FeignOptionsClientConfig.class differ diff --git a/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/ribbon/LoadBalancerFeignClient.class b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/ribbon/LoadBalancerFeignClient.class new file mode 100644 index 00000000..af351289 Binary files /dev/null and b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/ribbon/LoadBalancerFeignClient.class differ diff --git a/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/ribbon/OkHttpFeignLoadBalancedConfiguration$OkHttpFeignConfiguration.class b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/ribbon/OkHttpFeignLoadBalancedConfiguration$OkHttpFeignConfiguration.class new file mode 100644 index 00000000..238ae05e Binary files /dev/null and b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/ribbon/OkHttpFeignLoadBalancedConfiguration$OkHttpFeignConfiguration.class differ diff --git a/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/ribbon/OkHttpFeignLoadBalancedConfiguration.class b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/ribbon/OkHttpFeignLoadBalancedConfiguration.class new file mode 100644 index 00000000..61e0704a Binary files /dev/null and b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/ribbon/OkHttpFeignLoadBalancedConfiguration.class differ diff --git a/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/ribbon/RetryableFeignLoadBalancer$1.class b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/ribbon/RetryableFeignLoadBalancer$1.class new file mode 100644 index 00000000..535d846a Binary files /dev/null and b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/ribbon/RetryableFeignLoadBalancer$1.class differ diff --git a/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/ribbon/RetryableFeignLoadBalancer$2.class b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/ribbon/RetryableFeignLoadBalancer$2.class new file mode 100644 index 00000000..9c7a7b25 Binary files /dev/null and b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/ribbon/RetryableFeignLoadBalancer$2.class differ diff --git a/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/ribbon/RetryableFeignLoadBalancer.class b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/ribbon/RetryableFeignLoadBalancer.class new file mode 100644 index 00000000..6c1d5363 Binary files /dev/null and b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/ribbon/RetryableFeignLoadBalancer.class differ diff --git a/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/ribbon/RibbonResponseStatusCodeException.class b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/ribbon/RibbonResponseStatusCodeException.class new file mode 100644 index 00000000..ddd84521 Binary files /dev/null and b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/ribbon/RibbonResponseStatusCodeException.class differ diff --git a/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/support/FallbackCommand.class b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/support/FallbackCommand.class new file mode 100644 index 00000000..0b2f0f9b Binary files /dev/null and b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/support/FallbackCommand.class differ diff --git a/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/support/FeignHttpClientProperties.class b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/support/FeignHttpClientProperties.class new file mode 100644 index 00000000..780d6b4e Binary files /dev/null and b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/support/FeignHttpClientProperties.class differ diff --git a/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/support/FeignUtils.class b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/support/FeignUtils.class new file mode 100644 index 00000000..5abdbeda Binary files /dev/null and b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/support/FeignUtils.class differ diff --git a/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/support/ResponseEntityDecoder.class b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/support/ResponseEntityDecoder.class new file mode 100644 index 00000000..23bfcdf7 Binary files /dev/null and b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/support/ResponseEntityDecoder.class differ diff --git a/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/support/SpringDecoder$1.class b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/support/SpringDecoder$1.class new file mode 100644 index 00000000..e9e76d6b Binary files /dev/null and b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/support/SpringDecoder$1.class differ diff --git a/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/support/SpringDecoder$FeignResponseAdapter.class b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/support/SpringDecoder$FeignResponseAdapter.class new file mode 100644 index 00000000..1b6bad47 Binary files /dev/null and b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/support/SpringDecoder$FeignResponseAdapter.class differ diff --git a/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/support/SpringDecoder.class b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/support/SpringDecoder.class new file mode 100644 index 00000000..37a00513 Binary files /dev/null and b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/support/SpringDecoder.class differ diff --git a/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/support/SpringEncoder$1.class b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/support/SpringEncoder$1.class new file mode 100644 index 00000000..210bfcf5 Binary files /dev/null and b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/support/SpringEncoder$1.class differ diff --git a/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/support/SpringEncoder$FeignOutputMessage.class b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/support/SpringEncoder$FeignOutputMessage.class new file mode 100644 index 00000000..9036e648 Binary files /dev/null and b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/support/SpringEncoder$FeignOutputMessage.class differ diff --git a/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/support/SpringEncoder.class b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/support/SpringEncoder.class new file mode 100644 index 00000000..0d386467 Binary files /dev/null and b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/support/SpringEncoder.class differ diff --git a/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/support/SpringMvcContract$ConvertingExpander.class b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/support/SpringMvcContract$ConvertingExpander.class new file mode 100644 index 00000000..156832df Binary files /dev/null and b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/support/SpringMvcContract$ConvertingExpander.class differ diff --git a/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/support/SpringMvcContract$SimpleAnnotatedParameterContext.class b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/support/SpringMvcContract$SimpleAnnotatedParameterContext.class new file mode 100644 index 00000000..7fb07929 Binary files /dev/null and b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/support/SpringMvcContract$SimpleAnnotatedParameterContext.class differ diff --git a/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/support/SpringMvcContract.class b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/support/SpringMvcContract.class new file mode 100644 index 00000000..70cce901 Binary files /dev/null and b/spring-cloud-openfeign-core/target/classes/org/springframework/cloud/openfeign/support/SpringMvcContract.class differ diff --git a/spring-cloud-openfeign-core/target/javadoc-bundle-options/javadoc-options-javadoc-resources.xml b/spring-cloud-openfeign-core/target/javadoc-bundle-options/javadoc-options-javadoc-resources.xml new file mode 100644 index 00000000..8b89c977 --- /dev/null +++ b/spring-cloud-openfeign-core/target/javadoc-bundle-options/javadoc-options-javadoc-resources.xml @@ -0,0 +1,10 @@ + + + + + + + + + src/main/javadoc + diff --git a/spring-cloud-openfeign-core/target/javadoc-bundle-options/package-list b/spring-cloud-openfeign-core/target/javadoc-bundle-options/package-list new file mode 100644 index 00000000..59d42328 --- /dev/null +++ b/spring-cloud-openfeign-core/target/javadoc-bundle-options/package-list @@ -0,0 +1,217 @@ +java.applet +java.awt +java.awt.color +java.awt.datatransfer +java.awt.dnd +java.awt.event +java.awt.font +java.awt.geom +java.awt.im +java.awt.im.spi +java.awt.image +java.awt.image.renderable +java.awt.print +java.beans +java.beans.beancontext +java.io +java.lang +java.lang.annotation +java.lang.instrument +java.lang.invoke +java.lang.management +java.lang.ref +java.lang.reflect +java.math +java.net +java.nio +java.nio.channels +java.nio.channels.spi +java.nio.charset +java.nio.charset.spi +java.nio.file +java.nio.file.attribute +java.nio.file.spi +java.rmi +java.rmi.activation +java.rmi.dgc +java.rmi.registry +java.rmi.server +java.security +java.security.acl +java.security.cert +java.security.interfaces +java.security.spec +java.sql +java.text +java.text.spi +java.time +java.time.chrono +java.time.format +java.time.temporal +java.time.zone +java.util +java.util.concurrent +java.util.concurrent.atomic +java.util.concurrent.locks +java.util.function +java.util.jar +java.util.logging +java.util.prefs +java.util.regex +java.util.spi +java.util.stream +java.util.zip +javax.accessibility +javax.activation +javax.activity +javax.annotation +javax.annotation.processing +javax.crypto +javax.crypto.interfaces +javax.crypto.spec +javax.imageio +javax.imageio.event +javax.imageio.metadata +javax.imageio.plugins.bmp +javax.imageio.plugins.jpeg +javax.imageio.spi +javax.imageio.stream +javax.jws +javax.jws.soap +javax.lang.model +javax.lang.model.element +javax.lang.model.type +javax.lang.model.util +javax.management +javax.management.loading +javax.management.modelmbean +javax.management.monitor +javax.management.openmbean +javax.management.relation +javax.management.remote +javax.management.remote.rmi +javax.management.timer +javax.naming +javax.naming.directory +javax.naming.event +javax.naming.ldap +javax.naming.spi +javax.net +javax.net.ssl +javax.print +javax.print.attribute +javax.print.attribute.standard +javax.print.event +javax.rmi +javax.rmi.CORBA +javax.rmi.ssl +javax.script +javax.security.auth +javax.security.auth.callback +javax.security.auth.kerberos +javax.security.auth.login +javax.security.auth.spi +javax.security.auth.x500 +javax.security.cert +javax.security.sasl +javax.sound.midi +javax.sound.midi.spi +javax.sound.sampled +javax.sound.sampled.spi +javax.sql +javax.sql.rowset +javax.sql.rowset.serial +javax.sql.rowset.spi +javax.swing +javax.swing.border +javax.swing.colorchooser +javax.swing.event +javax.swing.filechooser +javax.swing.plaf +javax.swing.plaf.basic +javax.swing.plaf.metal +javax.swing.plaf.multi +javax.swing.plaf.nimbus +javax.swing.plaf.synth +javax.swing.table +javax.swing.text +javax.swing.text.html +javax.swing.text.html.parser +javax.swing.text.rtf +javax.swing.tree +javax.swing.undo +javax.tools +javax.transaction +javax.transaction.xa +javax.xml +javax.xml.bind +javax.xml.bind.annotation +javax.xml.bind.annotation.adapters +javax.xml.bind.attachment +javax.xml.bind.helpers +javax.xml.bind.util +javax.xml.crypto +javax.xml.crypto.dom +javax.xml.crypto.dsig +javax.xml.crypto.dsig.dom +javax.xml.crypto.dsig.keyinfo +javax.xml.crypto.dsig.spec +javax.xml.datatype +javax.xml.namespace +javax.xml.parsers +javax.xml.soap +javax.xml.stream +javax.xml.stream.events +javax.xml.stream.util +javax.xml.transform +javax.xml.transform.dom +javax.xml.transform.sax +javax.xml.transform.stax +javax.xml.transform.stream +javax.xml.validation +javax.xml.ws +javax.xml.ws.handler +javax.xml.ws.handler.soap +javax.xml.ws.http +javax.xml.ws.soap +javax.xml.ws.spi +javax.xml.ws.spi.http +javax.xml.ws.wsaddressing +javax.xml.xpath +org.ietf.jgss +org.omg.CORBA +org.omg.CORBA.DynAnyPackage +org.omg.CORBA.ORBPackage +org.omg.CORBA.TypeCodePackage +org.omg.CORBA.portable +org.omg.CORBA_2_3 +org.omg.CORBA_2_3.portable +org.omg.CosNaming +org.omg.CosNaming.NamingContextExtPackage +org.omg.CosNaming.NamingContextPackage +org.omg.Dynamic +org.omg.DynamicAny +org.omg.DynamicAny.DynAnyFactoryPackage +org.omg.DynamicAny.DynAnyPackage +org.omg.IOP +org.omg.IOP.CodecFactoryPackage +org.omg.IOP.CodecPackage +org.omg.Messaging +org.omg.PortableInterceptor +org.omg.PortableInterceptor.ORBInitInfoPackage +org.omg.PortableServer +org.omg.PortableServer.CurrentPackage +org.omg.PortableServer.POAManagerPackage +org.omg.PortableServer.POAPackage +org.omg.PortableServer.ServantLocatorPackage +org.omg.PortableServer.portable +org.omg.SendingContext +org.omg.stub.java.rmi +org.w3c.dom +org.w3c.dom.bootstrap +org.w3c.dom.events +org.w3c.dom.ls +org.w3c.dom.views +org.xml.sax +org.xml.sax.ext +org.xml.sax.helpers diff --git a/spring-cloud-openfeign-core/target/maven-archiver/pom.properties b/spring-cloud-openfeign-core/target/maven-archiver/pom.properties new file mode 100644 index 00000000..35a52279 --- /dev/null +++ b/spring-cloud-openfeign-core/target/maven-archiver/pom.properties @@ -0,0 +1,5 @@ +#Created by Apache Maven 3.5.0 +#Fri Mar 09 01:26:31 UTC 2018 +version=2.0.0.BUILD-SNAPSHOT +groupId=org.springframework.cloud +artifactId=spring-cloud-openfeign-core diff --git a/spring-cloud-openfeign-core/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/spring-cloud-openfeign-core/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst new file mode 100644 index 00000000..61f144d4 --- /dev/null +++ b/spring-cloud-openfeign-core/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst @@ -0,0 +1,70 @@ +org/springframework/cloud/openfeign/ribbon/OkHttpFeignLoadBalancedConfiguration$OkHttpFeignConfiguration.class +org/springframework/cloud/openfeign/ribbon/RetryableFeignLoadBalancer$1.class +org/springframework/cloud/openfeign/FeignClientsRegistrar$AllTypeFilter.class +org/springframework/cloud/openfeign/ribbon/HttpClientFeignLoadBalancedConfiguration$HttpClientFeignConfiguration$1.class +org/springframework/cloud/openfeign/FeignClientFactoryBean.class +org/springframework/cloud/openfeign/FeignClientProperties$FeignClientConfiguration.class +org/springframework/cloud/openfeign/ribbon/LoadBalancerFeignClient.class +org/springframework/cloud/openfeign/support/SpringEncoder$1.class +org/springframework/cloud/openfeign/support/SpringDecoder$FeignResponseAdapter.class +org/springframework/cloud/openfeign/ribbon/FeignRetryPolicy.class +org/springframework/cloud/openfeign/FeignClientsRegistrar$1.class +org/springframework/cloud/openfeign/annotation/RequestHeaderParameterProcessor.class +org/springframework/cloud/openfeign/ribbon/CachingSpringLoadBalancerFactory.class +org/springframework/cloud/openfeign/ribbon/RetryableFeignLoadBalancer.class +org/springframework/cloud/openfeign/support/SpringDecoder$1.class +org/springframework/cloud/openfeign/support/FeignUtils.class +org/springframework/cloud/openfeign/encoding/HttpEncoding.class +org/springframework/cloud/openfeign/FeignClientsRegistrar.class +org/springframework/cloud/openfeign/support/SpringMvcContract$ConvertingExpander.class +org/springframework/cloud/openfeign/FeignClientSpecification.class +org/springframework/cloud/openfeign/Targeter.class +org/springframework/cloud/openfeign/ribbon/FeignRetryPolicy$FeignRetryPolicyServiceInstance.class +org/springframework/cloud/openfeign/support/SpringEncoder$FeignOutputMessage.class +org/springframework/cloud/openfeign/FeignAutoConfiguration$HttpClientFeignConfiguration$1.class +org/springframework/cloud/openfeign/encoding/FeignClientEncodingProperties.class +org/springframework/cloud/openfeign/FeignClient.class +org/springframework/cloud/openfeign/HystrixTargeter.class +org/springframework/cloud/openfeign/ribbon/LoadBalancerFeignClient$FeignOptionsClientConfig.class +org/springframework/cloud/openfeign/ribbon/DefaultFeignLoadBalancedConfiguration.class +org/springframework/cloud/openfeign/ribbon/FeignLoadBalancer$RibbonRequest$1.class +org/springframework/cloud/openfeign/ribbon/FeignLoadBalancer$RibbonResponse.class +org/springframework/cloud/openfeign/FeignClientsConfiguration$HystrixFeignConfiguration.class +org/springframework/cloud/openfeign/FeignClientProperties.class +org/springframework/cloud/openfeign/DefaultFeignLoggerFactory.class +org/springframework/cloud/openfeign/ribbon/HttpClientFeignLoadBalancedConfiguration.class +org/springframework/cloud/openfeign/support/SpringDecoder.class +org/springframework/cloud/openfeign/support/FeignHttpClientProperties.class +org/springframework/cloud/openfeign/ribbon/FeignLoadBalancer.class +org/springframework/cloud/openfeign/ribbon/RibbonResponseStatusCodeException.class +org/springframework/cloud/openfeign/FeignClientsRegistrar$2.class +org/springframework/cloud/openfeign/support/SpringEncoder.class +org/springframework/cloud/openfeign/EnableFeignClients.class +org/springframework/cloud/openfeign/FeignAutoConfiguration$OkHttpFeignConfiguration.class +org/springframework/cloud/openfeign/FeignAutoConfiguration$HttpClientFeignConfiguration.class +org/springframework/cloud/openfeign/ribbon/HttpClientFeignLoadBalancedConfiguration$HttpClientFeignConfiguration.class +org/springframework/cloud/openfeign/ribbon/OkHttpFeignLoadBalancedConfiguration.class +org/springframework/cloud/openfeign/ribbon/FeignRibbonClientAutoConfiguration.class +org/springframework/cloud/openfeign/encoding/FeignContentGzipEncodingInterceptor.class +org/springframework/cloud/openfeign/FeignContext.class +org/springframework/cloud/openfeign/AnnotatedParameterProcessor$AnnotatedParameterContext.class +org/springframework/cloud/openfeign/annotation/RequestParamParameterProcessor.class +org/springframework/cloud/openfeign/annotation/PathVariableParameterProcessor.class +org/springframework/cloud/openfeign/support/ResponseEntityDecoder.class +org/springframework/cloud/openfeign/FeignLoggerFactory.class +org/springframework/cloud/openfeign/encoding/FeignAcceptGzipEncodingInterceptor.class +org/springframework/cloud/openfeign/DefaultTargeter.class +org/springframework/cloud/openfeign/ribbon/FeignLoadBalancer$RibbonRequest.class +org/springframework/cloud/openfeign/FeignClientsConfiguration.class +org/springframework/cloud/openfeign/support/SpringMvcContract.class +org/springframework/cloud/openfeign/support/FallbackCommand.class +org/springframework/cloud/openfeign/encoding/FeignAcceptGzipEncodingAutoConfiguration.class +org/springframework/cloud/openfeign/FeignAutoConfiguration$HystrixFeignTargeterConfiguration.class +org/springframework/cloud/openfeign/FeignAutoConfiguration.class +org/springframework/cloud/openfeign/ribbon/RetryableFeignLoadBalancer$2.class +org/springframework/cloud/openfeign/encoding/BaseRequestInterceptor.class +org/springframework/cloud/openfeign/support/SpringMvcContract$SimpleAnnotatedParameterContext.class +org/springframework/cloud/openfeign/encoding/FeignContentGzipEncodingAutoConfiguration.class +org/springframework/cloud/openfeign/FeignFormatterRegistrar.class +org/springframework/cloud/openfeign/FeignAutoConfiguration$DefaultFeignTargeterConfiguration.class +org/springframework/cloud/openfeign/AnnotatedParameterProcessor.class diff --git a/spring-cloud-openfeign-core/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/spring-cloud-openfeign-core/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst new file mode 100644 index 00000000..8064907f --- /dev/null +++ b/spring-cloud-openfeign-core/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst @@ -0,0 +1,43 @@ +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/ribbon/FeignLoadBalancer.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/ribbon/HttpClientFeignLoadBalancedConfiguration.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/encoding/FeignContentGzipEncodingAutoConfiguration.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/ribbon/DefaultFeignLoadBalancedConfiguration.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/ribbon/OkHttpFeignLoadBalancedConfiguration.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/FeignContext.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/FeignClientSpecification.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/annotation/RequestParamParameterProcessor.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/encoding/FeignContentGzipEncodingInterceptor.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/annotation/RequestHeaderParameterProcessor.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/support/FeignUtils.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/DefaultFeignLoggerFactory.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/DefaultTargeter.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/Targeter.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/FeignClient.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/FeignClientsRegistrar.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/ribbon/FeignRetryPolicy.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/FeignFormatterRegistrar.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/encoding/HttpEncoding.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/encoding/FeignAcceptGzipEncodingAutoConfiguration.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/ribbon/CachingSpringLoadBalancerFactory.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/AnnotatedParameterProcessor.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/FeignClientFactoryBean.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/encoding/FeignClientEncodingProperties.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/ribbon/FeignRibbonClientAutoConfiguration.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/encoding/BaseRequestInterceptor.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/FeignAutoConfiguration.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/support/FeignHttpClientProperties.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/support/SpringDecoder.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/HystrixTargeter.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/ribbon/LoadBalancerFeignClient.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/support/SpringEncoder.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/support/FallbackCommand.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/ribbon/RetryableFeignLoadBalancer.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/FeignClientsConfiguration.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/FeignLoggerFactory.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/support/ResponseEntityDecoder.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/FeignClientProperties.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/annotation/PathVariableParameterProcessor.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/encoding/FeignAcceptGzipEncodingInterceptor.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/EnableFeignClients.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/ribbon/RibbonResponseStatusCodeException.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/main/java/org/springframework/cloud/openfeign/support/SpringMvcContract.java diff --git a/spring-cloud-openfeign-core/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst b/spring-cloud-openfeign-core/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst new file mode 100644 index 00000000..2e31373a --- /dev/null +++ b/spring-cloud-openfeign-core/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/createdFiles.lst @@ -0,0 +1,239 @@ +org/springframework/cloud/netflix/feign/ribbon/FeignRibbonOkHttpClientConfigurationTests.class +org/springframework/cloud/openfeign/ribbon/RetryableFeignLoadBalancerTests$MyRetryListeners$1.class +org/springframework/cloud/openfeign/ribbon/FeignLoadBalancerTests$1.class +org/springframework/cloud/openfeign/support/SpringEncoderTests$TestClient.class +org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$WrongFallbackFactoryGenericTypeConfiguration$Client.class +org/springframework/cloud/openfeign/ribbon/RetryableFeignLoadBalancerTests$1.class +org/springframework/cloud/openfeign/ribbon/FeignRibbonClientRetryTests$Application.class +org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$WrongFallbackFactoryTypeConfiguration$Client.class +org/springframework/cloud/openfeign/valid/FeignClientTests$HystrixSetterFactoryClient.class +org/springframework/cloud/openfeign/valid/scanning/FeignClientScanningTests$LocalRibbonClientConfiguration.class +org/springframework/cloud/openfeign/valid/FeignClientValidationTests$PlaceholderUrlConfiguration$Client.class +org/springframework/cloud/openfeign/valid/scanning/FeignClientEnvVarTests.class +org/springframework/cloud/openfeign/valid/FeignClientValidationTests$GoodServiceIdConfiguration$Client.class +org/springframework/cloud/openfeign/test/OkHttpClientConfigurationTests.class +org/springframework/cloud/openfeign/ribbon/FeignRibbonClientPathTests$TestClient4.class +org/springframework/cloud/openfeign/FeignClientsRegistrarTests$FallbackTestConfig.class +org/springframework/cloud/openfeign/FeignOkHttpConfigurationTests.class +org/springframework/cloud/openfeign/encoding/FeignContentEncodingTests$Application.class +org/springframework/cloud/openfeign/valid/FeignHttpClientTests$BaseTestClient.class +org/springframework/cloud/openfeign/FeignClientUsingPropertiesTests$BarClient.class +org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$WrongFallbackTypeConfiguration$Dummy.class +org/springframework/cloud/openfeign/hystrix/security/app/ProxyUsernameController.class +org/springframework/cloud/openfeign/encoding/app/domain/Invoice.class +org/springframework/cloud/openfeign/ribbon/LoadBalancerFeignClientOverrideTests$FooConfiguration.class +org/springframework/cloud/openfeign/valid/FeignClientValidationTests$GoodServiceIdConfiguration.class +org/springframework/cloud/openfeign/valid/FeignClientTests$DecodingTestClient.class +org/springframework/cloud/openfeign/FeignClientUsingPropertiesTests$FormEncoder.class +org/springframework/cloud/openfeign/FeignClientOverrideDefaultsTests$BarConfiguration.class +org/springframework/cloud/openfeign/valid/FeignClientTests$TestDefaultFeignConfig.class +org/springframework/cloud/openfeign/support/SpringMvcContractTests$TestTemplate_HeaderMap.class +org/springframework/cloud/openfeign/encoding/FeignAcceptEncodingTests$LocalRibbonClientConfiguration.class +org/springframework/cloud/openfeign/support/SpringMvcContractTests$TestTemplate_Simple.class +org/springframework/cloud/openfeign/encoding/FeignAcceptEncodingTests$Application.class +org/springframework/cloud/openfeign/ribbon/FeignRibbonClientTests$RequestMatcher.class +org/springframework/cloud/openfeign/FeignClientFactoryTests$Bar.class +org/springframework/cloud/openfeign/hystrix/security/app/UsernameController.class +org/springframework/cloud/openfeign/valid/FeignOkHttpTests$UserClient.class +org/springframework/cloud/openfeign/support/SpringMvcContractTests$TestTemplate_MapParams.class +org/springframework/cloud/openfeign/ribbon/LocalRibbonClientConfiguration.class +org/springframework/cloud/openfeign/valid/FeignClientValidationTests$GoodUrlConfiguration.class +org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$WrongFallbackFactoryGenericTypeConfiguration$ClientFallback.class +org/springframework/cloud/openfeign/FeignClientUsingPropertiesTests$BarRequestInterceptor.class +org/springframework/cloud/openfeign/ribbon/FeignRibbonClientPathTests$TestClient5.class +org/springframework/cloud/openfeign/FeignClientFactoryTests$FooConfig.class +org/springframework/cloud/openfeign/valid/FeignClientTests$HystrixClientWithFallBackFactory.class +org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$WrongFallbackTypeConfiguration.class +org/springframework/cloud/openfeign/testclients/TestClient.class +org/springframework/cloud/openfeign/FeignClientFactoryTests$Foo.class +org/springframework/cloud/openfeign/valid/FeignClientNotPrimaryTests$TestDefaultFeignConfig.class +org/springframework/cloud/openfeign/valid/FeignHttpClientTests$UserService.class +org/springframework/cloud/openfeign/valid/FeignClientTests$TestHystrixSetterFactoryClientConfig.class +org/springframework/cloud/openfeign/valid/FeignOkHttpTests$BaseTestClient.class +org/springframework/cloud/openfeign/ribbon/RetryableFeignLoadBalancerTests$MyBackOffPolicyFactory.class +org/springframework/cloud/openfeign/valid/FeignClientNotPrimaryTests.class +org/springframework/cloud/openfeign/FeignLoggerFactoryTests$LoggerImpl1.class +org/springframework/cloud/openfeign/FeignClientOverrideDefaultsTests$BarClient.class +org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$BadHostnameConfiguration$Client.class +org/springframework/cloud/openfeign/FeignHttpClientUrlTests$Hello.class +org/springframework/cloud/openfeign/FeignHttpClientUrlTests.class +org/springframework/cloud/openfeign/hystrix/security/HystrixSecurityTests.class +org/springframework/cloud/openfeign/FeignHttpClientUrlTests$TestConfig.class +org/springframework/cloud/openfeign/test/ApacheHttpClientConfigurationTests$ApacheHttpClientConfigurationTestApp$MyApacheHttpClientFactory.class +org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$NameAndServiceIdConfiguration.class +org/springframework/cloud/openfeign/ribbon/LoadBalancerFeignClientOverrideTests$BarConfiguration.class +org/springframework/cloud/openfeign/support/SpringMvcContractTests$TestTemplate_ListParams.class +org/springframework/cloud/openfeign/test/OkHttpClientConfigurationTests$TestConfig.class +org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$WrongFallbackFactoryTypeConfiguration$Dummy.class +org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$WrongFallbackFactoryGenericTypeConfiguration.class +org/springframework/cloud/openfeign/FeignClientUsingPropertiesTests$FooRequestInterceptor.class +org/springframework/cloud/openfeign/valid/FeignHttpClientTests.class +org/springframework/cloud/openfeign/encoding/app/client/InvoiceClient.class +org/springframework/cloud/openfeign/support/FeignHttpClientPropertiesTests$TestConfiguration.class +org/springframework/cloud/openfeign/FeignLoggerFactoryTests$LoggerFactoryImpl.class +org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$MissingFallbackConfiguration$Client.class +org/springframework/cloud/openfeign/test/ApacheHttpClientConfigurationTests$ApacheHttpClientConfigurationTestApp.class +org/springframework/cloud/openfeign/test/TestAutoConfiguration$TestSecurityConfiguration.class +org/springframework/cloud/openfeign/ribbon/FeignRibbonClientPathTests$TestClient.class +org/springframework/cloud/openfeign/encoding/FeignAcceptEncodingTests.class +org/springframework/cloud/openfeign/ribbon/FeignRibbonClientRetryTests.class +org/springframework/cloud/openfeign/FeignClientOverrideDefaultsTests.class +org/springframework/cloud/openfeign/beans/FeignClientTests$Application.class +org/springframework/cloud/openfeign/FeignClientFactoryTests.class +org/springframework/cloud/openfeign/FeignCompressionTests$PlainConfig.class +org/springframework/cloud/openfeign/valid/FeignClientValidationTests.class +org/springframework/cloud/openfeign/ribbon/FeignRibbonClientPathTests$TestClient3.class +org/springframework/cloud/openfeign/FeignClientUsingPropertiesTests.class +org/springframework/cloud/openfeign/FeignClientsRegistrarTests$FallbackFactoryClient.class +org/springframework/cloud/openfeign/FeignClientOverrideDefaultsTests$FooClient.class +org/springframework/cloud/openfeign/EnableFeignClientsTests$PlainConfiguration.class +org/springframework/cloud/openfeign/ribbon/FeignRibbonClientTests.class +org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$MissingFallbackFactoryConfiguration$Client.class +org/springframework/cloud/openfeign/valid/FeignClientTests$Application$1$1.class +org/springframework/cloud/openfeign/valid/FeignOkHttpTests$Hello.class +org/springframework/cloud/openfeign/valid/FeignOkHttpTests$User.class +org/springframework/cloud/openfeign/valid/FeignClientNotPrimaryTests$PrimaryTestClient.class +org/springframework/cloud/openfeign/FeignLoggerFactoryTests$LoggerImpl2.class +org/springframework/cloud/openfeign/valid/FeignClientTests$TestClientConfig.class +org/springframework/cloud/openfeign/ribbon/FeignRibbonClientPathTests.class +org/springframework/cloud/openfeign/valid/FeignClientNotPrimaryTests$LocalRibbonClientConfiguration.class +org/springframework/cloud/openfeign/FeignHttpClientUrlTests$UrlClient.class +org/springframework/cloud/openfeign/valid/FeignClientValidationTests$GoodUrlConfiguration$Client.class +org/springframework/cloud/openfeign/hystrix/security/HystrixSecurityApplication.class +org/springframework/cloud/openfeign/ribbon/FeignRibbonClientPathTests$TestClient2.class +org/springframework/cloud/openfeign/beans/FeignClientTests.class +org/springframework/cloud/openfeign/ribbon/RetryableFeignLoadBalancerTests$MyRetryListenersNotRetry$1.class +org/springframework/cloud/openfeign/beans/FeignClientTests$TestDefaultFeignConfig.class +org/springframework/cloud/openfeign/SpringDecoderTests$TestClient.class +org/springframework/cloud/openfeign/FeignHttpClientUrlTests$BeanUrlClient.class +org/springframework/cloud/openfeign/valid/scanning/FeignClientEnvVarTests$Application.class +org/springframework/cloud/openfeign/valid/FeignClientTests$Arg.class +org/springframework/cloud/openfeign/SpringRetryDisabledTests.class +org/springframework/cloud/openfeign/valid/FeignOkHttpTests.class +org/springframework/cloud/openfeign/valid/FeignClientTests$HystrixClientFallbackFactory.class +org/springframework/cloud/openfeign/support/SpringMvcContractTests$TestTemplate_QueryMap.class +org/springframework/cloud/openfeign/FeignClientUsingPropertiesTests$DefaultErrorDecoder.class +org/springframework/cloud/openfeign/FeignClientsRegistrarTests$FallbackClient.class +org/springframework/cloud/openfeign/valid/FeignHttpClientTests$Application.class +org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$MissingFallbackConfiguration.class +org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$BadHostnameConfiguration.class +org/springframework/cloud/openfeign/valid/scanning/FeignClientScanningTests.class +org/springframework/cloud/openfeign/FeignClientOverrideDefaultsTests$TestConfiguration.class +org/springframework/cloud/openfeign/FeignClientsRegistrarTests.class +org/springframework/cloud/openfeign/support/SpringMvcContractTests.class +org/springframework/cloud/openfeign/valid/FeignClientTests$Application$1.class +org/springframework/cloud/openfeign/ribbon/CachingSpringLoadBalancerFactoryTests.class +org/springframework/cloud/openfeign/support/SpringMvcContractTests$TestTemplate_Extended.class +org/springframework/cloud/openfeign/ribbon/LoadBalancerFeignClientOverrideTests.class +org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$MissingFallbackFactoryConfiguration$ClientFallback.class +org/springframework/cloud/openfeign/encoding/Invoices.class +org/springframework/cloud/openfeign/support/FeignHttpClientPropertiesTests.class +org/springframework/cloud/openfeign/ribbon/RetryableFeignLoadBalancerTests$MyRetryListeners.class +org/springframework/cloud/openfeign/ribbon/FeignRibbonClientPathTests$TestClient1.class +org/springframework/cloud/openfeign/support/SpringEncoderTests$Application.class +org/springframework/cloud/openfeign/valid/FeignClientValidationTests$PlaceholderUrlConfiguration.class +org/springframework/cloud/openfeign/valid/FeignOkHttpTests$LocalRibbonClientConfiguration.class +org/springframework/cloud/netflix/feign/ribbon/FeignRibbonHttpClientConfigurationTests.class +org/springframework/cloud/openfeign/valid/scanning/FeignClientScanningTests$Application.class +org/springframework/cloud/openfeign/encoding/app/resource/InvoiceResource.class +org/springframework/cloud/openfeign/beans/extra/TestClient.class +org/springframework/cloud/openfeign/valid/FeignClientTests$Application.class +org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$MissingFallbackConfiguration$ClientFallback.class +org/springframework/cloud/openfeign/valid/FeignClientTests$TestClientConfig$2.class +org/springframework/cloud/openfeign/FeignLoggerFactoryTests$SampleConfiguration1.class +org/springframework/cloud/openfeign/test/OkHttpClientConfigurationTests$TestConfig$MyOkHttpClientConnectionPoolFactory.class +org/springframework/cloud/openfeign/ribbon/FeignRibbonClientPathTests$LocalRibbonClientConfiguration.class +org/springframework/cloud/openfeign/support/SpringEncoderTests$MediaTypeMatcher.class +org/springframework/cloud/openfeign/support/SpringEncoderTests$MyType.class +org/springframework/cloud/openfeign/ribbon/RetryableFeignLoadBalancerTests$3.class +org/springframework/cloud/openfeign/test/TestAutoConfiguration.class +org/springframework/cloud/openfeign/support/SpringEncoderTests.class +org/springframework/cloud/openfeign/EnableFeignClientsTests.class +org/springframework/cloud/openfeign/valid/FeignClientTests$LocalRibbonClientConfiguration.class +org/springframework/cloud/openfeign/ribbon/LoadBalancerFeignClientOverrideTests$BarClient.class +org/springframework/cloud/openfeign/valid/scanning/FeignClientEnvVarTests$LocalRibbonClientConfiguration.class +org/springframework/cloud/openfeign/test/ApacheHttpClientConfigurationTests$ApacheHttpClientConfigurationTestApp$FooClient.class +org/springframework/cloud/openfeign/FeignCompressionTests.class +org/springframework/cloud/openfeign/beans/TestClient.class +org/springframework/cloud/openfeign/SpringDecoderTests$Hello.class +org/springframework/cloud/openfeign/valid/FeignOkHttpTests$UserService.class +org/springframework/cloud/openfeign/support/SpringMvcContractTests$TestTemplate_HeadersWithoutValues.class +org/springframework/cloud/openfeign/FeignClientUsingPropertiesTests$FormClient.class +org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$NameAndServiceIdConfiguration$Client.class +org/springframework/cloud/openfeign/ribbon/FeignRibbonClientRetryTests$Hello.class +org/springframework/cloud/openfeign/valid/FeignClientTests$TestClientServiceId.class +org/springframework/cloud/openfeign/ribbon/LoadBalancerFeignClientOverrideTests$BazClient.class +org/springframework/cloud/openfeign/valid/scanning/FeignClientScanningTests$TestClient.class +org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$NameAndValueConfiguration$Client.class +org/springframework/cloud/openfeign/ribbon/LoadBalancerFeignClientOverrideTests$FooClient.class +org/springframework/cloud/openfeign/valid/FeignOkHttpTests$TestClient.class +org/springframework/cloud/openfeign/hystrix/security/HystrixSecurityTests$1.class +org/springframework/cloud/netflix/feign/ribbon/FeignRibbonOkHttpClientConfigurationTests$FeignRibbonOkHttpClientConfigurationTestsApplication.class +org/springframework/cloud/openfeign/test/ApacheHttpClientConfigurationTests$ApacheHttpClientConfigurationTestApp$MyConfig.class +org/springframework/cloud/openfeign/FeignClientOverrideDefaultsTests$TestConfiguration$1.class +org/springframework/cloud/openfeign/ribbon/RetryableFeignLoadBalancerTests.class +org/springframework/cloud/netflix/feign/ribbon/FeignRibbonHttpClientConfigurationTests$FeignRibbonHttpClientConfigurationTestsApplication.class +org/springframework/cloud/openfeign/test/ApacheHttpClientConfigurationTests.class +org/springframework/cloud/openfeign/ribbon/RibbonResponseStatusCodeExceptionTest.class +org/springframework/cloud/openfeign/test/OkHttpClientConfigurationTests$FooClient.class +org/springframework/cloud/openfeign/valid/FeignClientTests$OtherArg.class +org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$WrongFallbackFactoryTypeConfiguration.class +org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$WrongFallbackTypeConfiguration$Client.class +org/springframework/cloud/openfeign/valid/FeignHttpClientTests$User.class +org/springframework/cloud/openfeign/valid/FeignClientTests$Hello.class +org/springframework/cloud/openfeign/encoding/FeignContentEncodingTests.class +org/springframework/cloud/openfeign/valid/FeignClientTests$TestClientConfig$1.class +org/springframework/cloud/openfeign/valid/FeignClientNotPrimaryTests$Hello.class +org/springframework/cloud/openfeign/ribbon/RetryableFeignLoadBalancerTests$2.class +org/springframework/cloud/openfeign/FeignHttpClientConfigurationTests.class +org/springframework/cloud/openfeign/FeignHttpClientUrlTests$BeanUrlClientNoProtocol.class +org/springframework/cloud/openfeign/ribbon/FeignRibbonClientTests$1.class +org/springframework/cloud/openfeign/hystrix/security/app/TestInterceptor.class +org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$MissingFallbackFactoryConfiguration.class +org/springframework/cloud/openfeign/ribbon/LoadBalancerFeignClientOverrideTests$TestConfiguration.class +org/springframework/cloud/openfeign/SpringDecoderTests$Application.class +org/springframework/cloud/openfeign/valid/FeignClientTests$HystrixClientFallbackFactory$1.class +org/springframework/cloud/openfeign/test/OkHttpClientConfigurationTests$TestConfig$MyOkHttpClientFactory.class +org/springframework/cloud/openfeign/valid/FeignHttpClientTests$LocalRibbonClientConfiguration.class +org/springframework/cloud/openfeign/valid/scanning/FeignClientScanningTests$TestClientByKey.class +org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$NameAndValueConfiguration.class +org/springframework/cloud/openfeign/encoding/FeignContentEncodingTests$LocalRibbonClientConfiguration.class +org/springframework/cloud/openfeign/FeignClientOverrideDefaultsTests$FooConfiguration.class +org/springframework/cloud/openfeign/support/SpringMvcContractTests$TestTemplate_Advanced.class +org/springframework/cloud/openfeign/ribbon/FeignRibbonClientRetryTests$TestClient.class +org/springframework/cloud/openfeign/beans/FeignClientTests$Hello.class +org/springframework/cloud/openfeign/FeignClientFactoryTests$BarConfig.class +org/springframework/cloud/openfeign/support/SpringMvcContractTests$TestObject.class +org/springframework/cloud/openfeign/hystrix/security/app/UsernameClient.class +org/springframework/cloud/openfeign/valid/FeignOkHttpTests$Application.class +org/springframework/cloud/openfeign/support/SpringMvcContractTests$TestTemplate_ListParamsWithoutName.class +org/springframework/cloud/openfeign/FeignClientUsingPropertiesTests$Application.class +org/springframework/cloud/openfeign/support/SpringEncoderTests$Application$MyHttpMessageConverter.class +org/springframework/cloud/openfeign/SpringDecoderTests.class +org/springframework/cloud/openfeign/FeignClientUsingPropertiesTests$NoRetryer.class +org/springframework/cloud/openfeign/valid/FeignClientTests.class +org/springframework/cloud/openfeign/ribbon/RetryableFeignLoadBalancerTests$MyRetryListenersNotRetry.class +org/springframework/cloud/openfeign/ribbon/FeignLoadBalancerTests.class +org/springframework/cloud/openfeign/valid/FeignHttpClientTests$TestClient.class +org/springframework/cloud/openfeign/FeignLoggerFactoryTests$SampleConfiguration2.class +org/springframework/cloud/openfeign/support/SpringMvcContractTests$TestTemplate_Class_Annotations.class +org/springframework/cloud/openfeign/FeignLoggerFactoryTests.class +org/springframework/cloud/openfeign/hystrix/security/app/CustomConcurrenyStrategy.class +org/springframework/cloud/openfeign/valid/FeignClientTests$TestClient.class +org/springframework/cloud/openfeign/valid/FeignClientNotPrimaryTests$TestClient.class +org/springframework/cloud/openfeign/valid/FeignClientNotPrimaryTests$Application.class +org/springframework/cloud/openfeign/valid/FeignHttpClientTests$Hello.class +org/springframework/cloud/openfeign/FeignHttpClientUrlTests$TestConfig$1.class +org/springframework/cloud/openfeign/ribbon/FeignRibbonClientPathTests$Hello.class +org/springframework/cloud/openfeign/SpringRetryEnabledTests.class +org/springframework/cloud/openfeign/valid/FeignHttpClientTests$UserClient.class +org/springframework/cloud/openfeign/valid/FeignClientTests$HystrixClientFallback.class +org/springframework/cloud/openfeign/valid/FeignClientTests$TestHystrixSetterFactoryClientConfig$1.class +org/springframework/cloud/openfeign/support/SpringMvcContractTests$TestTemplate_Headers.class +org/springframework/cloud/openfeign/test/ApacheHttpClientConfigurationTests$ApacheHttpClientConfigurationTestApp$MyApacheHttpClientConnectionManagerFactory.class +org/springframework/cloud/openfeign/valid/FeignClientTests$HystrixClient.class +org/springframework/cloud/openfeign/FeignLoggerFactoryTests$SampleConfiguration3.class +org/springframework/cloud/openfeign/FeignClientUsingPropertiesTests$FooClient.class +org/springframework/cloud/openfeign/invalid/FeignClientValidationTests.class +org/springframework/cloud/openfeign/ribbon/FeignRibbonClientPathTests$Application.class +org/springframework/cloud/openfeign/FeignClientsRegistrarTests$FallbackFactoryTestConfig.class diff --git a/spring-cloud-openfeign-core/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst b/spring-cloud-openfeign-core/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst new file mode 100644 index 00000000..c01e716a --- /dev/null +++ b/spring-cloud-openfeign-core/target/maven-status/maven-compiler-plugin/testCompile/default-testCompile/inputFiles.lst @@ -0,0 +1,54 @@ +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/FeignClientUsingPropertiesTests.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/ribbon/FeignRibbonClientTests.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/ribbon/FeignLoadBalancerTests.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/SpringRetryDisabledTests.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/hystrix/security/app/TestInterceptor.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/FeignOkHttpConfigurationTests.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/EnableFeignClientsTests.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/beans/extra/TestClient.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/encoding/FeignContentEncodingTests.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/valid/scanning/FeignClientScanningTests.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/encoding/FeignAcceptEncodingTests.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/ribbon/FeignRibbonClientPathTests.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/test/TestAutoConfiguration.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/valid/FeignHttpClientTests.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/ribbon/RibbonResponseStatusCodeExceptionTest.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/beans/FeignClientTests.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/SpringRetryEnabledTests.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/beans/TestClient.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/support/SpringEncoderTests.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/ribbon/FeignRibbonOkHttpClientConfigurationTests.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/support/SpringMvcContractTests.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/ribbon/FeignRibbonHttpClientConfigurationTests.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/ribbon/LoadBalancerFeignClientOverrideTests.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/valid/FeignClientTests.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/invalid/FeignClientValidationTests.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/FeignLoggerFactoryTests.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/test/ApacheHttpClientConfigurationTests.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/FeignHttpClientConfigurationTests.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/ribbon/CachingSpringLoadBalancerFactoryTests.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/hystrix/security/app/ProxyUsernameController.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/hystrix/security/app/UsernameController.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/FeignClientOverrideDefaultsTests.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/hystrix/security/HystrixSecurityApplication.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/encoding/app/resource/InvoiceResource.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/ribbon/FeignRibbonClientRetryTests.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/valid/FeignClientNotPrimaryTests.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/encoding/Invoices.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/valid/FeignOkHttpTests.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/ribbon/RetryableFeignLoadBalancerTests.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/test/OkHttpClientConfigurationTests.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/valid/FeignClientValidationTests.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/FeignClientFactoryTests.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/valid/scanning/FeignClientEnvVarTests.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/hystrix/security/HystrixSecurityTests.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/FeignCompressionTests.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/FeignHttpClientUrlTests.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/hystrix/security/app/CustomConcurrenyStrategy.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/SpringDecoderTests.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/encoding/app/domain/Invoice.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/FeignClientsRegistrarTests.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/encoding/app/client/InvoiceClient.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/support/FeignHttpClientPropertiesTests.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/hystrix/security/app/UsernameClient.java +/opt/jenkins/data/workspace/spring-cloud-openfeign-master-ci/spring-cloud-openfeign-core/src/test/java/org/springframework/cloud/openfeign/testclients/TestClient.java diff --git a/spring-cloud-openfeign-core/target/spring-cloud-openfeign-core-2.0.0.BUILD-SNAPSHOT-javadoc.jar b/spring-cloud-openfeign-core/target/spring-cloud-openfeign-core-2.0.0.BUILD-SNAPSHOT-javadoc.jar new file mode 100644 index 00000000..0c390142 Binary files /dev/null and b/spring-cloud-openfeign-core/target/spring-cloud-openfeign-core-2.0.0.BUILD-SNAPSHOT-javadoc.jar differ diff --git a/spring-cloud-openfeign-core/target/spring-cloud-openfeign-core-2.0.0.BUILD-SNAPSHOT-sources.jar b/spring-cloud-openfeign-core/target/spring-cloud-openfeign-core-2.0.0.BUILD-SNAPSHOT-sources.jar new file mode 100644 index 00000000..6abf0769 Binary files /dev/null and b/spring-cloud-openfeign-core/target/spring-cloud-openfeign-core-2.0.0.BUILD-SNAPSHOT-sources.jar differ diff --git a/spring-cloud-openfeign-core/target/spring-cloud-openfeign-core-2.0.0.BUILD-SNAPSHOT.jar b/spring-cloud-openfeign-core/target/spring-cloud-openfeign-core-2.0.0.BUILD-SNAPSHOT.jar new file mode 100644 index 00000000..5abcefef Binary files /dev/null and b/spring-cloud-openfeign-core/target/spring-cloud-openfeign-core-2.0.0.BUILD-SNAPSHOT.jar differ diff --git a/spring-cloud-openfeign-core/target/test-classes/META-INF/spring.factories b/spring-cloud-openfeign-core/target/test-classes/META-INF/spring.factories new file mode 100644 index 00000000..84a979f1 --- /dev/null +++ b/spring-cloud-openfeign-core/target/test-classes/META-INF/spring.factories @@ -0,0 +1,2 @@ +org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ +org.springframework.cloud.openfeign.test.TestAutoConfiguration diff --git a/spring-cloud-openfeign-core/target/test-classes/application.yml b/spring-cloud-openfeign-core/target/test-classes/application.yml new file mode 100644 index 00000000..60815792 --- /dev/null +++ b/spring-cloud-openfeign-core/target/test-classes/application.yml @@ -0,0 +1,39 @@ +server: + port: 9999 + compression: + enabled: true + min-response-size: 1024 + mime-types: application/xml,application/json +spring: + application: + name: testclient +eureka: + server: + enabled: false + client: + registerWithEureka: false + fetchRegistry: false +#error: +# path: /myerror +hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds: 60000 +ribbon: + ConnectTimeout: 3001 + ReadTimeout: 60001 +foo: + ribbon: + ConnectTimeout: 7 + ReadTimeout: 17 +badClients: + ribbon: + MaxAutoRetriesNextServer: 10 + ReadTimeout: 200 +endpoints: + health: + sensitive: false +hystrix: + shareSecurityContext: true +feignClient: + localappName: localapp + methodLevelRequestMappingPath: /hello2 + myPlaceholderHeader: myPlaceholderHeaderValue +management.endpoints.web.expose: '*' diff --git a/spring-cloud-openfeign-core/target/test-classes/feign-properties.properties b/spring-cloud-openfeign-core/target/test-classes/feign-properties.properties new file mode 100644 index 00000000..0fe10a1e --- /dev/null +++ b/spring-cloud-openfeign-core/target/test-classes/feign-properties.properties @@ -0,0 +1,21 @@ +# This configuration used by test class FeignClientUsingPropertiesTests + +logging.level.org.springframework.cloud.openfeign=debug + +feign.client.default-to-properties=true +feign.client.default-config=default + +feign.client.config.default.connectTimeout=5000 +feign.client.config.default.readTimeout=5000 +feign.client.config.default.loggerLevel=full +feign.client.config.default.errorDecoder=org.springframework.cloud.openfeign.FeignClientUsingPropertiesTests.DefaultErrorDecoder +feign.client.config.default.retryer=org.springframework.cloud.openfeign.FeignClientUsingPropertiesTests.NoRetryer +feign.client.config.default.decode404=true + +feign.client.config.foo.requestInterceptors[0]=org.springframework.cloud.openfeign.FeignClientUsingPropertiesTests.FooRequestInterceptor +feign.client.config.foo.requestInterceptors[1]=org.springframework.cloud.openfeign.FeignClientUsingPropertiesTests.BarRequestInterceptor + +feign.client.config.bar.connectTimeout=1000 +feign.client.config.bar.readTimeout=1000 + +feign.client.config.form.encoder=org.springframework.cloud.openfeign.FeignClientUsingPropertiesTests.FormEncoder \ No newline at end of file diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/netflix/feign/ribbon/FeignRibbonHttpClientConfigurationTests$FeignRibbonHttpClientConfigurationTestsApplication.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/netflix/feign/ribbon/FeignRibbonHttpClientConfigurationTests$FeignRibbonHttpClientConfigurationTestsApplication.class new file mode 100644 index 00000000..13fbfbd8 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/netflix/feign/ribbon/FeignRibbonHttpClientConfigurationTests$FeignRibbonHttpClientConfigurationTestsApplication.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/netflix/feign/ribbon/FeignRibbonHttpClientConfigurationTests.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/netflix/feign/ribbon/FeignRibbonHttpClientConfigurationTests.class new file mode 100644 index 00000000..5929ef23 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/netflix/feign/ribbon/FeignRibbonHttpClientConfigurationTests.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/netflix/feign/ribbon/FeignRibbonOkHttpClientConfigurationTests$FeignRibbonOkHttpClientConfigurationTestsApplication.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/netflix/feign/ribbon/FeignRibbonOkHttpClientConfigurationTests$FeignRibbonOkHttpClientConfigurationTestsApplication.class new file mode 100644 index 00000000..26ffdd8c Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/netflix/feign/ribbon/FeignRibbonOkHttpClientConfigurationTests$FeignRibbonOkHttpClientConfigurationTestsApplication.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/netflix/feign/ribbon/FeignRibbonOkHttpClientConfigurationTests.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/netflix/feign/ribbon/FeignRibbonOkHttpClientConfigurationTests.class new file mode 100644 index 00000000..76db6f3c Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/netflix/feign/ribbon/FeignRibbonOkHttpClientConfigurationTests.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/EnableFeignClientsTests$PlainConfiguration.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/EnableFeignClientsTests$PlainConfiguration.class new file mode 100644 index 00000000..56683c1f Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/EnableFeignClientsTests$PlainConfiguration.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/EnableFeignClientsTests.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/EnableFeignClientsTests.class new file mode 100644 index 00000000..4678c68e Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/EnableFeignClientsTests.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientFactoryTests$Bar.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientFactoryTests$Bar.class new file mode 100644 index 00000000..3b27a4dd Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientFactoryTests$Bar.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientFactoryTests$BarConfig.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientFactoryTests$BarConfig.class new file mode 100644 index 00000000..e6afdfa3 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientFactoryTests$BarConfig.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientFactoryTests$Foo.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientFactoryTests$Foo.class new file mode 100644 index 00000000..ca76b5fb Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientFactoryTests$Foo.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientFactoryTests$FooConfig.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientFactoryTests$FooConfig.class new file mode 100644 index 00000000..b1277ede Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientFactoryTests$FooConfig.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientFactoryTests.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientFactoryTests.class new file mode 100644 index 00000000..bcdc4546 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientFactoryTests.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientOverrideDefaultsTests$BarClient.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientOverrideDefaultsTests$BarClient.class new file mode 100644 index 00000000..5319f522 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientOverrideDefaultsTests$BarClient.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientOverrideDefaultsTests$BarConfiguration.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientOverrideDefaultsTests$BarConfiguration.class new file mode 100644 index 00000000..b589528f Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientOverrideDefaultsTests$BarConfiguration.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientOverrideDefaultsTests$FooClient.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientOverrideDefaultsTests$FooClient.class new file mode 100644 index 00000000..eaee0e8e Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientOverrideDefaultsTests$FooClient.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientOverrideDefaultsTests$FooConfiguration.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientOverrideDefaultsTests$FooConfiguration.class new file mode 100644 index 00000000..0bddea15 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientOverrideDefaultsTests$FooConfiguration.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientOverrideDefaultsTests$TestConfiguration$1.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientOverrideDefaultsTests$TestConfiguration$1.class new file mode 100644 index 00000000..57a3a801 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientOverrideDefaultsTests$TestConfiguration$1.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientOverrideDefaultsTests$TestConfiguration.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientOverrideDefaultsTests$TestConfiguration.class new file mode 100644 index 00000000..e8a0f496 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientOverrideDefaultsTests$TestConfiguration.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientOverrideDefaultsTests.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientOverrideDefaultsTests.class new file mode 100644 index 00000000..d6793b1e Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientOverrideDefaultsTests.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientUsingPropertiesTests$Application.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientUsingPropertiesTests$Application.class new file mode 100644 index 00000000..351bbf94 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientUsingPropertiesTests$Application.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientUsingPropertiesTests$BarClient.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientUsingPropertiesTests$BarClient.class new file mode 100644 index 00000000..a05c0576 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientUsingPropertiesTests$BarClient.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientUsingPropertiesTests$BarRequestInterceptor.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientUsingPropertiesTests$BarRequestInterceptor.class new file mode 100644 index 00000000..48afd6ba Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientUsingPropertiesTests$BarRequestInterceptor.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientUsingPropertiesTests$DefaultErrorDecoder.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientUsingPropertiesTests$DefaultErrorDecoder.class new file mode 100644 index 00000000..76616aad Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientUsingPropertiesTests$DefaultErrorDecoder.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientUsingPropertiesTests$FooClient.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientUsingPropertiesTests$FooClient.class new file mode 100644 index 00000000..9e28bdb4 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientUsingPropertiesTests$FooClient.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientUsingPropertiesTests$FooRequestInterceptor.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientUsingPropertiesTests$FooRequestInterceptor.class new file mode 100644 index 00000000..50ad2b20 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientUsingPropertiesTests$FooRequestInterceptor.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientUsingPropertiesTests$FormClient.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientUsingPropertiesTests$FormClient.class new file mode 100644 index 00000000..9c857ad4 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientUsingPropertiesTests$FormClient.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientUsingPropertiesTests$FormEncoder.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientUsingPropertiesTests$FormEncoder.class new file mode 100644 index 00000000..727fb333 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientUsingPropertiesTests$FormEncoder.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientUsingPropertiesTests$NoRetryer.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientUsingPropertiesTests$NoRetryer.class new file mode 100644 index 00000000..e3bcdc45 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientUsingPropertiesTests$NoRetryer.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientUsingPropertiesTests.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientUsingPropertiesTests.class new file mode 100644 index 00000000..05c1ab64 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientUsingPropertiesTests.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientsRegistrarTests$FallbackClient.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientsRegistrarTests$FallbackClient.class new file mode 100644 index 00000000..614f29a8 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientsRegistrarTests$FallbackClient.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientsRegistrarTests$FallbackFactoryClient.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientsRegistrarTests$FallbackFactoryClient.class new file mode 100644 index 00000000..3850868e Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientsRegistrarTests$FallbackFactoryClient.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientsRegistrarTests$FallbackFactoryTestConfig.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientsRegistrarTests$FallbackFactoryTestConfig.class new file mode 100644 index 00000000..65dac853 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientsRegistrarTests$FallbackFactoryTestConfig.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientsRegistrarTests$FallbackTestConfig.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientsRegistrarTests$FallbackTestConfig.class new file mode 100644 index 00000000..d80c6307 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientsRegistrarTests$FallbackTestConfig.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientsRegistrarTests.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientsRegistrarTests.class new file mode 100644 index 00000000..4e41dab2 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignClientsRegistrarTests.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignCompressionTests$PlainConfig.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignCompressionTests$PlainConfig.class new file mode 100644 index 00000000..c03451a2 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignCompressionTests$PlainConfig.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignCompressionTests.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignCompressionTests.class new file mode 100644 index 00000000..15eb5549 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignCompressionTests.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignHttpClientConfigurationTests.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignHttpClientConfigurationTests.class new file mode 100644 index 00000000..57bf8a3d Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignHttpClientConfigurationTests.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignHttpClientUrlTests$BeanUrlClient.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignHttpClientUrlTests$BeanUrlClient.class new file mode 100644 index 00000000..4f518112 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignHttpClientUrlTests$BeanUrlClient.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignHttpClientUrlTests$BeanUrlClientNoProtocol.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignHttpClientUrlTests$BeanUrlClientNoProtocol.class new file mode 100644 index 00000000..34b0b2b6 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignHttpClientUrlTests$BeanUrlClientNoProtocol.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignHttpClientUrlTests$Hello.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignHttpClientUrlTests$Hello.class new file mode 100644 index 00000000..fb12ba9c Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignHttpClientUrlTests$Hello.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignHttpClientUrlTests$TestConfig$1.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignHttpClientUrlTests$TestConfig$1.class new file mode 100644 index 00000000..cf75df0c Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignHttpClientUrlTests$TestConfig$1.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignHttpClientUrlTests$TestConfig.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignHttpClientUrlTests$TestConfig.class new file mode 100644 index 00000000..56a8d0a8 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignHttpClientUrlTests$TestConfig.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignHttpClientUrlTests$UrlClient.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignHttpClientUrlTests$UrlClient.class new file mode 100644 index 00000000..db67a152 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignHttpClientUrlTests$UrlClient.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignHttpClientUrlTests.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignHttpClientUrlTests.class new file mode 100644 index 00000000..0a50dfaf Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignHttpClientUrlTests.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignLoggerFactoryTests$LoggerFactoryImpl.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignLoggerFactoryTests$LoggerFactoryImpl.class new file mode 100644 index 00000000..6f0080df Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignLoggerFactoryTests$LoggerFactoryImpl.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignLoggerFactoryTests$LoggerImpl1.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignLoggerFactoryTests$LoggerImpl1.class new file mode 100644 index 00000000..f71e5851 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignLoggerFactoryTests$LoggerImpl1.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignLoggerFactoryTests$LoggerImpl2.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignLoggerFactoryTests$LoggerImpl2.class new file mode 100644 index 00000000..ac646eb1 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignLoggerFactoryTests$LoggerImpl2.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignLoggerFactoryTests$SampleConfiguration1.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignLoggerFactoryTests$SampleConfiguration1.class new file mode 100644 index 00000000..b1ce6449 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignLoggerFactoryTests$SampleConfiguration1.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignLoggerFactoryTests$SampleConfiguration2.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignLoggerFactoryTests$SampleConfiguration2.class new file mode 100644 index 00000000..4bb6d5f6 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignLoggerFactoryTests$SampleConfiguration2.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignLoggerFactoryTests$SampleConfiguration3.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignLoggerFactoryTests$SampleConfiguration3.class new file mode 100644 index 00000000..e3eca666 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignLoggerFactoryTests$SampleConfiguration3.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignLoggerFactoryTests.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignLoggerFactoryTests.class new file mode 100644 index 00000000..4fd9fe88 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignLoggerFactoryTests.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignOkHttpConfigurationTests.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignOkHttpConfigurationTests.class new file mode 100644 index 00000000..3de98b5b Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/FeignOkHttpConfigurationTests.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/SpringDecoderTests$Application.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/SpringDecoderTests$Application.class new file mode 100644 index 00000000..7f629b25 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/SpringDecoderTests$Application.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/SpringDecoderTests$Hello.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/SpringDecoderTests$Hello.class new file mode 100644 index 00000000..8d2cfbfa Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/SpringDecoderTests$Hello.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/SpringDecoderTests$TestClient.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/SpringDecoderTests$TestClient.class new file mode 100644 index 00000000..cb54cf5e Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/SpringDecoderTests$TestClient.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/SpringDecoderTests.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/SpringDecoderTests.class new file mode 100644 index 00000000..e45286ef Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/SpringDecoderTests.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/SpringRetryDisabledTests.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/SpringRetryDisabledTests.class new file mode 100644 index 00000000..5b45dd05 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/SpringRetryDisabledTests.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/SpringRetryEnabledTests.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/SpringRetryEnabledTests.class new file mode 100644 index 00000000..7aa3fe38 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/SpringRetryEnabledTests.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/beans/FeignClientTests$Application.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/beans/FeignClientTests$Application.class new file mode 100644 index 00000000..42be4749 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/beans/FeignClientTests$Application.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/beans/FeignClientTests$Hello.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/beans/FeignClientTests$Hello.class new file mode 100644 index 00000000..bf09dff9 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/beans/FeignClientTests$Hello.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/beans/FeignClientTests$TestDefaultFeignConfig.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/beans/FeignClientTests$TestDefaultFeignConfig.class new file mode 100644 index 00000000..8292314b Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/beans/FeignClientTests$TestDefaultFeignConfig.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/beans/FeignClientTests.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/beans/FeignClientTests.class new file mode 100644 index 00000000..be4e1244 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/beans/FeignClientTests.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/beans/TestClient.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/beans/TestClient.class new file mode 100644 index 00000000..f5639154 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/beans/TestClient.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/beans/extra/TestClient.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/beans/extra/TestClient.class new file mode 100644 index 00000000..b3452463 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/beans/extra/TestClient.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/encoding/FeignAcceptEncodingTests$Application.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/encoding/FeignAcceptEncodingTests$Application.class new file mode 100644 index 00000000..69ddc4d5 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/encoding/FeignAcceptEncodingTests$Application.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/encoding/FeignAcceptEncodingTests$LocalRibbonClientConfiguration.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/encoding/FeignAcceptEncodingTests$LocalRibbonClientConfiguration.class new file mode 100644 index 00000000..6b1670b8 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/encoding/FeignAcceptEncodingTests$LocalRibbonClientConfiguration.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/encoding/FeignAcceptEncodingTests.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/encoding/FeignAcceptEncodingTests.class new file mode 100644 index 00000000..6b704340 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/encoding/FeignAcceptEncodingTests.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/encoding/FeignContentEncodingTests$Application.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/encoding/FeignContentEncodingTests$Application.class new file mode 100644 index 00000000..7dd03ba7 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/encoding/FeignContentEncodingTests$Application.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/encoding/FeignContentEncodingTests$LocalRibbonClientConfiguration.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/encoding/FeignContentEncodingTests$LocalRibbonClientConfiguration.class new file mode 100644 index 00000000..faa7dcb7 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/encoding/FeignContentEncodingTests$LocalRibbonClientConfiguration.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/encoding/FeignContentEncodingTests.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/encoding/FeignContentEncodingTests.class new file mode 100644 index 00000000..ffb6a65a Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/encoding/FeignContentEncodingTests.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/encoding/Invoices.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/encoding/Invoices.class new file mode 100644 index 00000000..cb485929 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/encoding/Invoices.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/encoding/app/client/InvoiceClient.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/encoding/app/client/InvoiceClient.class new file mode 100644 index 00000000..12dc216f Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/encoding/app/client/InvoiceClient.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/encoding/app/domain/Invoice.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/encoding/app/domain/Invoice.class new file mode 100644 index 00000000..c769d62a Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/encoding/app/domain/Invoice.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/encoding/app/resource/InvoiceResource.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/encoding/app/resource/InvoiceResource.class new file mode 100644 index 00000000..bf26bc63 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/encoding/app/resource/InvoiceResource.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/hystrix/security/HystrixSecurityApplication.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/hystrix/security/HystrixSecurityApplication.class new file mode 100644 index 00000000..6021082f Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/hystrix/security/HystrixSecurityApplication.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/hystrix/security/HystrixSecurityTests$1.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/hystrix/security/HystrixSecurityTests$1.class new file mode 100644 index 00000000..2564aaef Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/hystrix/security/HystrixSecurityTests$1.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/hystrix/security/HystrixSecurityTests.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/hystrix/security/HystrixSecurityTests.class new file mode 100644 index 00000000..f7ee0a95 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/hystrix/security/HystrixSecurityTests.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/hystrix/security/app/CustomConcurrenyStrategy.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/hystrix/security/app/CustomConcurrenyStrategy.class new file mode 100644 index 00000000..9f74c7e8 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/hystrix/security/app/CustomConcurrenyStrategy.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/hystrix/security/app/ProxyUsernameController.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/hystrix/security/app/ProxyUsernameController.class new file mode 100644 index 00000000..0cbac7b8 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/hystrix/security/app/ProxyUsernameController.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/hystrix/security/app/TestInterceptor.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/hystrix/security/app/TestInterceptor.class new file mode 100644 index 00000000..e234ec8b Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/hystrix/security/app/TestInterceptor.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/hystrix/security/app/UsernameClient.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/hystrix/security/app/UsernameClient.class new file mode 100644 index 00000000..039fba41 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/hystrix/security/app/UsernameClient.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/hystrix/security/app/UsernameController.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/hystrix/security/app/UsernameController.class new file mode 100644 index 00000000..33406eb2 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/hystrix/security/app/UsernameController.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$BadHostnameConfiguration$Client.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$BadHostnameConfiguration$Client.class new file mode 100644 index 00000000..2b225d6c Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$BadHostnameConfiguration$Client.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$BadHostnameConfiguration.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$BadHostnameConfiguration.class new file mode 100644 index 00000000..94962ba6 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$BadHostnameConfiguration.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$MissingFallbackConfiguration$Client.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$MissingFallbackConfiguration$Client.class new file mode 100644 index 00000000..4ece6f07 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$MissingFallbackConfiguration$Client.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$MissingFallbackConfiguration$ClientFallback.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$MissingFallbackConfiguration$ClientFallback.class new file mode 100644 index 00000000..fb8f3e4a Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$MissingFallbackConfiguration$ClientFallback.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$MissingFallbackConfiguration.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$MissingFallbackConfiguration.class new file mode 100644 index 00000000..43fa8776 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$MissingFallbackConfiguration.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$MissingFallbackFactoryConfiguration$Client.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$MissingFallbackFactoryConfiguration$Client.class new file mode 100644 index 00000000..54e526aa Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$MissingFallbackFactoryConfiguration$Client.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$MissingFallbackFactoryConfiguration$ClientFallback.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$MissingFallbackFactoryConfiguration$ClientFallback.class new file mode 100644 index 00000000..b7880ba1 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$MissingFallbackFactoryConfiguration$ClientFallback.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$MissingFallbackFactoryConfiguration.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$MissingFallbackFactoryConfiguration.class new file mode 100644 index 00000000..7565b278 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$MissingFallbackFactoryConfiguration.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$NameAndServiceIdConfiguration$Client.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$NameAndServiceIdConfiguration$Client.class new file mode 100644 index 00000000..157e7a10 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$NameAndServiceIdConfiguration$Client.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$NameAndServiceIdConfiguration.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$NameAndServiceIdConfiguration.class new file mode 100644 index 00000000..1d12860c Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$NameAndServiceIdConfiguration.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$NameAndValueConfiguration$Client.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$NameAndValueConfiguration$Client.class new file mode 100644 index 00000000..37eef1a0 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$NameAndValueConfiguration$Client.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$NameAndValueConfiguration.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$NameAndValueConfiguration.class new file mode 100644 index 00000000..cee0428e Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$NameAndValueConfiguration.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$WrongFallbackFactoryGenericTypeConfiguration$Client.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$WrongFallbackFactoryGenericTypeConfiguration$Client.class new file mode 100644 index 00000000..544b2c72 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$WrongFallbackFactoryGenericTypeConfiguration$Client.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$WrongFallbackFactoryGenericTypeConfiguration$ClientFallback.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$WrongFallbackFactoryGenericTypeConfiguration$ClientFallback.class new file mode 100644 index 00000000..837b293f Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$WrongFallbackFactoryGenericTypeConfiguration$ClientFallback.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$WrongFallbackFactoryGenericTypeConfiguration.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$WrongFallbackFactoryGenericTypeConfiguration.class new file mode 100644 index 00000000..4e77735e Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$WrongFallbackFactoryGenericTypeConfiguration.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$WrongFallbackFactoryTypeConfiguration$Client.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$WrongFallbackFactoryTypeConfiguration$Client.class new file mode 100644 index 00000000..c52574c8 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$WrongFallbackFactoryTypeConfiguration$Client.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$WrongFallbackFactoryTypeConfiguration$Dummy.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$WrongFallbackFactoryTypeConfiguration$Dummy.class new file mode 100644 index 00000000..496d36c7 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$WrongFallbackFactoryTypeConfiguration$Dummy.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$WrongFallbackFactoryTypeConfiguration.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$WrongFallbackFactoryTypeConfiguration.class new file mode 100644 index 00000000..2087fb05 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$WrongFallbackFactoryTypeConfiguration.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$WrongFallbackTypeConfiguration$Client.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$WrongFallbackTypeConfiguration$Client.class new file mode 100644 index 00000000..03969104 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$WrongFallbackTypeConfiguration$Client.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$WrongFallbackTypeConfiguration$Dummy.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$WrongFallbackTypeConfiguration$Dummy.class new file mode 100644 index 00000000..1eee3112 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$WrongFallbackTypeConfiguration$Dummy.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$WrongFallbackTypeConfiguration.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$WrongFallbackTypeConfiguration.class new file mode 100644 index 00000000..183c5c3b Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/invalid/FeignClientValidationTests$WrongFallbackTypeConfiguration.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/invalid/FeignClientValidationTests.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/invalid/FeignClientValidationTests.class new file mode 100644 index 00000000..8de6e348 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/invalid/FeignClientValidationTests.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/CachingSpringLoadBalancerFactoryTests.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/CachingSpringLoadBalancerFactoryTests.class new file mode 100644 index 00000000..604ca0a9 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/CachingSpringLoadBalancerFactoryTests.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/FeignLoadBalancerTests$1.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/FeignLoadBalancerTests$1.class new file mode 100644 index 00000000..e3c84398 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/FeignLoadBalancerTests$1.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/FeignLoadBalancerTests.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/FeignLoadBalancerTests.class new file mode 100644 index 00000000..5e41fad2 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/FeignLoadBalancerTests.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/FeignRibbonClientPathTests$Application.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/FeignRibbonClientPathTests$Application.class new file mode 100644 index 00000000..4f8d02da Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/FeignRibbonClientPathTests$Application.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/FeignRibbonClientPathTests$Hello.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/FeignRibbonClientPathTests$Hello.class new file mode 100644 index 00000000..21175bc6 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/FeignRibbonClientPathTests$Hello.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/FeignRibbonClientPathTests$LocalRibbonClientConfiguration.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/FeignRibbonClientPathTests$LocalRibbonClientConfiguration.class new file mode 100644 index 00000000..8ac4ddd5 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/FeignRibbonClientPathTests$LocalRibbonClientConfiguration.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/FeignRibbonClientPathTests$TestClient.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/FeignRibbonClientPathTests$TestClient.class new file mode 100644 index 00000000..325be046 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/FeignRibbonClientPathTests$TestClient.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/FeignRibbonClientPathTests$TestClient1.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/FeignRibbonClientPathTests$TestClient1.class new file mode 100644 index 00000000..6302abec Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/FeignRibbonClientPathTests$TestClient1.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/FeignRibbonClientPathTests$TestClient2.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/FeignRibbonClientPathTests$TestClient2.class new file mode 100644 index 00000000..6cacd21b Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/FeignRibbonClientPathTests$TestClient2.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/FeignRibbonClientPathTests$TestClient3.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/FeignRibbonClientPathTests$TestClient3.class new file mode 100644 index 00000000..b682148f Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/FeignRibbonClientPathTests$TestClient3.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/FeignRibbonClientPathTests$TestClient4.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/FeignRibbonClientPathTests$TestClient4.class new file mode 100644 index 00000000..49525b32 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/FeignRibbonClientPathTests$TestClient4.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/FeignRibbonClientPathTests$TestClient5.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/FeignRibbonClientPathTests$TestClient5.class new file mode 100644 index 00000000..e8458ee1 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/FeignRibbonClientPathTests$TestClient5.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/FeignRibbonClientPathTests.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/FeignRibbonClientPathTests.class new file mode 100644 index 00000000..4bdb4431 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/FeignRibbonClientPathTests.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/FeignRibbonClientRetryTests$Application.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/FeignRibbonClientRetryTests$Application.class new file mode 100644 index 00000000..9ec9821f Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/FeignRibbonClientRetryTests$Application.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/FeignRibbonClientRetryTests$Hello.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/FeignRibbonClientRetryTests$Hello.class new file mode 100644 index 00000000..a7cb0588 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/FeignRibbonClientRetryTests$Hello.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/FeignRibbonClientRetryTests$TestClient.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/FeignRibbonClientRetryTests$TestClient.class new file mode 100644 index 00000000..018e01ee Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/FeignRibbonClientRetryTests$TestClient.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/FeignRibbonClientRetryTests.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/FeignRibbonClientRetryTests.class new file mode 100644 index 00000000..74d9e40b Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/FeignRibbonClientRetryTests.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/FeignRibbonClientTests$1.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/FeignRibbonClientTests$1.class new file mode 100644 index 00000000..228c4172 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/FeignRibbonClientTests$1.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/FeignRibbonClientTests$RequestMatcher.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/FeignRibbonClientTests$RequestMatcher.class new file mode 100644 index 00000000..e9340873 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/FeignRibbonClientTests$RequestMatcher.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/FeignRibbonClientTests.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/FeignRibbonClientTests.class new file mode 100644 index 00000000..866ac162 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/FeignRibbonClientTests.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/LoadBalancerFeignClientOverrideTests$BarClient.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/LoadBalancerFeignClientOverrideTests$BarClient.class new file mode 100644 index 00000000..51a67066 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/LoadBalancerFeignClientOverrideTests$BarClient.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/LoadBalancerFeignClientOverrideTests$BarConfiguration.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/LoadBalancerFeignClientOverrideTests$BarConfiguration.class new file mode 100644 index 00000000..d5ac57cc Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/LoadBalancerFeignClientOverrideTests$BarConfiguration.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/LoadBalancerFeignClientOverrideTests$BazClient.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/LoadBalancerFeignClientOverrideTests$BazClient.class new file mode 100644 index 00000000..b9adc4aa Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/LoadBalancerFeignClientOverrideTests$BazClient.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/LoadBalancerFeignClientOverrideTests$FooClient.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/LoadBalancerFeignClientOverrideTests$FooClient.class new file mode 100644 index 00000000..9b0ed70b Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/LoadBalancerFeignClientOverrideTests$FooClient.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/LoadBalancerFeignClientOverrideTests$FooConfiguration.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/LoadBalancerFeignClientOverrideTests$FooConfiguration.class new file mode 100644 index 00000000..1219d26b Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/LoadBalancerFeignClientOverrideTests$FooConfiguration.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/LoadBalancerFeignClientOverrideTests$TestConfiguration.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/LoadBalancerFeignClientOverrideTests$TestConfiguration.class new file mode 100644 index 00000000..b5dfb34b Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/LoadBalancerFeignClientOverrideTests$TestConfiguration.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/LoadBalancerFeignClientOverrideTests.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/LoadBalancerFeignClientOverrideTests.class new file mode 100644 index 00000000..bdcea237 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/LoadBalancerFeignClientOverrideTests.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/LocalRibbonClientConfiguration.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/LocalRibbonClientConfiguration.class new file mode 100644 index 00000000..0110f7da Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/LocalRibbonClientConfiguration.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/RetryableFeignLoadBalancerTests$1.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/RetryableFeignLoadBalancerTests$1.class new file mode 100644 index 00000000..d26b8080 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/RetryableFeignLoadBalancerTests$1.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/RetryableFeignLoadBalancerTests$2.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/RetryableFeignLoadBalancerTests$2.class new file mode 100644 index 00000000..1a37d8fa Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/RetryableFeignLoadBalancerTests$2.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/RetryableFeignLoadBalancerTests$3.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/RetryableFeignLoadBalancerTests$3.class new file mode 100644 index 00000000..b279013e Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/RetryableFeignLoadBalancerTests$3.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/RetryableFeignLoadBalancerTests$MyBackOffPolicyFactory.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/RetryableFeignLoadBalancerTests$MyBackOffPolicyFactory.class new file mode 100644 index 00000000..e62c6df6 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/RetryableFeignLoadBalancerTests$MyBackOffPolicyFactory.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/RetryableFeignLoadBalancerTests$MyRetryListeners$1.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/RetryableFeignLoadBalancerTests$MyRetryListeners$1.class new file mode 100644 index 00000000..02a5e623 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/RetryableFeignLoadBalancerTests$MyRetryListeners$1.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/RetryableFeignLoadBalancerTests$MyRetryListeners.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/RetryableFeignLoadBalancerTests$MyRetryListeners.class new file mode 100644 index 00000000..83ebf9db Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/RetryableFeignLoadBalancerTests$MyRetryListeners.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/RetryableFeignLoadBalancerTests$MyRetryListenersNotRetry$1.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/RetryableFeignLoadBalancerTests$MyRetryListenersNotRetry$1.class new file mode 100644 index 00000000..3208234c Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/RetryableFeignLoadBalancerTests$MyRetryListenersNotRetry$1.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/RetryableFeignLoadBalancerTests$MyRetryListenersNotRetry.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/RetryableFeignLoadBalancerTests$MyRetryListenersNotRetry.class new file mode 100644 index 00000000..e002a6c2 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/RetryableFeignLoadBalancerTests$MyRetryListenersNotRetry.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/RetryableFeignLoadBalancerTests.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/RetryableFeignLoadBalancerTests.class new file mode 100644 index 00000000..cda81d41 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/RetryableFeignLoadBalancerTests.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/RibbonResponseStatusCodeExceptionTest.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/RibbonResponseStatusCodeExceptionTest.class new file mode 100644 index 00000000..c71f5b1e Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/ribbon/RibbonResponseStatusCodeExceptionTest.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/support/FeignHttpClientPropertiesTests$TestConfiguration.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/support/FeignHttpClientPropertiesTests$TestConfiguration.class new file mode 100644 index 00000000..2ba23b79 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/support/FeignHttpClientPropertiesTests$TestConfiguration.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/support/FeignHttpClientPropertiesTests.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/support/FeignHttpClientPropertiesTests.class new file mode 100644 index 00000000..83cc214b Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/support/FeignHttpClientPropertiesTests.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/support/SpringEncoderTests$Application$MyHttpMessageConverter.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/support/SpringEncoderTests$Application$MyHttpMessageConverter.class new file mode 100644 index 00000000..50e323e0 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/support/SpringEncoderTests$Application$MyHttpMessageConverter.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/support/SpringEncoderTests$Application.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/support/SpringEncoderTests$Application.class new file mode 100644 index 00000000..24377ca8 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/support/SpringEncoderTests$Application.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/support/SpringEncoderTests$MediaTypeMatcher.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/support/SpringEncoderTests$MediaTypeMatcher.class new file mode 100644 index 00000000..fc9e0b56 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/support/SpringEncoderTests$MediaTypeMatcher.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/support/SpringEncoderTests$MyType.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/support/SpringEncoderTests$MyType.class new file mode 100644 index 00000000..6b52fc47 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/support/SpringEncoderTests$MyType.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/support/SpringEncoderTests$TestClient.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/support/SpringEncoderTests$TestClient.class new file mode 100644 index 00000000..373cbfcd Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/support/SpringEncoderTests$TestClient.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/support/SpringEncoderTests.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/support/SpringEncoderTests.class new file mode 100644 index 00000000..3fc4fa67 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/support/SpringEncoderTests.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/support/SpringMvcContractTests$TestObject.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/support/SpringMvcContractTests$TestObject.class new file mode 100644 index 00000000..edd92922 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/support/SpringMvcContractTests$TestObject.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/support/SpringMvcContractTests$TestTemplate_Advanced.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/support/SpringMvcContractTests$TestTemplate_Advanced.class new file mode 100644 index 00000000..9de6d3d0 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/support/SpringMvcContractTests$TestTemplate_Advanced.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/support/SpringMvcContractTests$TestTemplate_Class_Annotations.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/support/SpringMvcContractTests$TestTemplate_Class_Annotations.class new file mode 100644 index 00000000..2c3708d5 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/support/SpringMvcContractTests$TestTemplate_Class_Annotations.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/support/SpringMvcContractTests$TestTemplate_Extended.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/support/SpringMvcContractTests$TestTemplate_Extended.class new file mode 100644 index 00000000..47976f12 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/support/SpringMvcContractTests$TestTemplate_Extended.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/support/SpringMvcContractTests$TestTemplate_HeaderMap.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/support/SpringMvcContractTests$TestTemplate_HeaderMap.class new file mode 100644 index 00000000..a4a5d158 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/support/SpringMvcContractTests$TestTemplate_HeaderMap.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/support/SpringMvcContractTests$TestTemplate_Headers.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/support/SpringMvcContractTests$TestTemplate_Headers.class new file mode 100644 index 00000000..cb4ff752 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/support/SpringMvcContractTests$TestTemplate_Headers.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/support/SpringMvcContractTests$TestTemplate_HeadersWithoutValues.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/support/SpringMvcContractTests$TestTemplate_HeadersWithoutValues.class new file mode 100644 index 00000000..e105d047 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/support/SpringMvcContractTests$TestTemplate_HeadersWithoutValues.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/support/SpringMvcContractTests$TestTemplate_ListParams.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/support/SpringMvcContractTests$TestTemplate_ListParams.class new file mode 100644 index 00000000..aa01d480 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/support/SpringMvcContractTests$TestTemplate_ListParams.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/support/SpringMvcContractTests$TestTemplate_ListParamsWithoutName.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/support/SpringMvcContractTests$TestTemplate_ListParamsWithoutName.class new file mode 100644 index 00000000..7e1f75b7 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/support/SpringMvcContractTests$TestTemplate_ListParamsWithoutName.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/support/SpringMvcContractTests$TestTemplate_MapParams.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/support/SpringMvcContractTests$TestTemplate_MapParams.class new file mode 100644 index 00000000..ca92ed2e Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/support/SpringMvcContractTests$TestTemplate_MapParams.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/support/SpringMvcContractTests$TestTemplate_QueryMap.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/support/SpringMvcContractTests$TestTemplate_QueryMap.class new file mode 100644 index 00000000..ad6466ff Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/support/SpringMvcContractTests$TestTemplate_QueryMap.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/support/SpringMvcContractTests$TestTemplate_Simple.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/support/SpringMvcContractTests$TestTemplate_Simple.class new file mode 100644 index 00000000..a9656d5e Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/support/SpringMvcContractTests$TestTemplate_Simple.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/support/SpringMvcContractTests.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/support/SpringMvcContractTests.class new file mode 100644 index 00000000..3d4baca4 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/support/SpringMvcContractTests.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/test/ApacheHttpClientConfigurationTests$ApacheHttpClientConfigurationTestApp$FooClient.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/test/ApacheHttpClientConfigurationTests$ApacheHttpClientConfigurationTestApp$FooClient.class new file mode 100644 index 00000000..ac4406b4 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/test/ApacheHttpClientConfigurationTests$ApacheHttpClientConfigurationTestApp$FooClient.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/test/ApacheHttpClientConfigurationTests$ApacheHttpClientConfigurationTestApp$MyApacheHttpClientConnectionManagerFactory.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/test/ApacheHttpClientConfigurationTests$ApacheHttpClientConfigurationTestApp$MyApacheHttpClientConnectionManagerFactory.class new file mode 100644 index 00000000..5d5baae8 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/test/ApacheHttpClientConfigurationTests$ApacheHttpClientConfigurationTestApp$MyApacheHttpClientConnectionManagerFactory.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/test/ApacheHttpClientConfigurationTests$ApacheHttpClientConfigurationTestApp$MyApacheHttpClientFactory.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/test/ApacheHttpClientConfigurationTests$ApacheHttpClientConfigurationTestApp$MyApacheHttpClientFactory.class new file mode 100644 index 00000000..8afa3ad3 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/test/ApacheHttpClientConfigurationTests$ApacheHttpClientConfigurationTestApp$MyApacheHttpClientFactory.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/test/ApacheHttpClientConfigurationTests$ApacheHttpClientConfigurationTestApp$MyConfig.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/test/ApacheHttpClientConfigurationTests$ApacheHttpClientConfigurationTestApp$MyConfig.class new file mode 100644 index 00000000..36d3b2de Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/test/ApacheHttpClientConfigurationTests$ApacheHttpClientConfigurationTestApp$MyConfig.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/test/ApacheHttpClientConfigurationTests$ApacheHttpClientConfigurationTestApp.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/test/ApacheHttpClientConfigurationTests$ApacheHttpClientConfigurationTestApp.class new file mode 100644 index 00000000..5e73c373 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/test/ApacheHttpClientConfigurationTests$ApacheHttpClientConfigurationTestApp.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/test/ApacheHttpClientConfigurationTests.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/test/ApacheHttpClientConfigurationTests.class new file mode 100644 index 00000000..6595a270 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/test/ApacheHttpClientConfigurationTests.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/test/OkHttpClientConfigurationTests$FooClient.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/test/OkHttpClientConfigurationTests$FooClient.class new file mode 100644 index 00000000..bb1c4475 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/test/OkHttpClientConfigurationTests$FooClient.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/test/OkHttpClientConfigurationTests$TestConfig$MyOkHttpClientConnectionPoolFactory.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/test/OkHttpClientConfigurationTests$TestConfig$MyOkHttpClientConnectionPoolFactory.class new file mode 100644 index 00000000..ad9b9f29 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/test/OkHttpClientConfigurationTests$TestConfig$MyOkHttpClientConnectionPoolFactory.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/test/OkHttpClientConfigurationTests$TestConfig$MyOkHttpClientFactory.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/test/OkHttpClientConfigurationTests$TestConfig$MyOkHttpClientFactory.class new file mode 100644 index 00000000..b2fada02 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/test/OkHttpClientConfigurationTests$TestConfig$MyOkHttpClientFactory.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/test/OkHttpClientConfigurationTests$TestConfig.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/test/OkHttpClientConfigurationTests$TestConfig.class new file mode 100644 index 00000000..5dedfc2a Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/test/OkHttpClientConfigurationTests$TestConfig.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/test/OkHttpClientConfigurationTests.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/test/OkHttpClientConfigurationTests.class new file mode 100644 index 00000000..954b3fb2 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/test/OkHttpClientConfigurationTests.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/test/TestAutoConfiguration$TestSecurityConfiguration.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/test/TestAutoConfiguration$TestSecurityConfiguration.class new file mode 100644 index 00000000..bf058f54 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/test/TestAutoConfiguration$TestSecurityConfiguration.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/test/TestAutoConfiguration.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/test/TestAutoConfiguration.class new file mode 100644 index 00000000..3f2ac39d Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/test/TestAutoConfiguration.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/testclients/TestClient.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/testclients/TestClient.class new file mode 100644 index 00000000..c7373822 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/testclients/TestClient.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientNotPrimaryTests$Application.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientNotPrimaryTests$Application.class new file mode 100644 index 00000000..011f7d85 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientNotPrimaryTests$Application.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientNotPrimaryTests$Hello.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientNotPrimaryTests$Hello.class new file mode 100644 index 00000000..56bbe0df Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientNotPrimaryTests$Hello.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientNotPrimaryTests$LocalRibbonClientConfiguration.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientNotPrimaryTests$LocalRibbonClientConfiguration.class new file mode 100644 index 00000000..eaed726f Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientNotPrimaryTests$LocalRibbonClientConfiguration.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientNotPrimaryTests$PrimaryTestClient.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientNotPrimaryTests$PrimaryTestClient.class new file mode 100644 index 00000000..df5a38d7 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientNotPrimaryTests$PrimaryTestClient.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientNotPrimaryTests$TestClient.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientNotPrimaryTests$TestClient.class new file mode 100644 index 00000000..9c2a1635 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientNotPrimaryTests$TestClient.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientNotPrimaryTests$TestDefaultFeignConfig.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientNotPrimaryTests$TestDefaultFeignConfig.class new file mode 100644 index 00000000..b16916ac Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientNotPrimaryTests$TestDefaultFeignConfig.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientNotPrimaryTests.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientNotPrimaryTests.class new file mode 100644 index 00000000..d8e7f93c Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientNotPrimaryTests.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientTests$Application$1$1.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientTests$Application$1$1.class new file mode 100644 index 00000000..95b9b661 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientTests$Application$1$1.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientTests$Application$1.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientTests$Application$1.class new file mode 100644 index 00000000..34307019 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientTests$Application$1.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientTests$Application.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientTests$Application.class new file mode 100644 index 00000000..1042fafc Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientTests$Application.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientTests$Arg.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientTests$Arg.class new file mode 100644 index 00000000..72e5c33e Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientTests$Arg.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientTests$DecodingTestClient.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientTests$DecodingTestClient.class new file mode 100644 index 00000000..88a86c1b Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientTests$DecodingTestClient.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientTests$Hello.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientTests$Hello.class new file mode 100644 index 00000000..8a1ce8db Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientTests$Hello.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientTests$HystrixClient.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientTests$HystrixClient.class new file mode 100644 index 00000000..77cbfb70 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientTests$HystrixClient.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientTests$HystrixClientFallback.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientTests$HystrixClientFallback.class new file mode 100644 index 00000000..acc7a796 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientTests$HystrixClientFallback.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientTests$HystrixClientFallbackFactory$1.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientTests$HystrixClientFallbackFactory$1.class new file mode 100644 index 00000000..7bdd20d5 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientTests$HystrixClientFallbackFactory$1.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientTests$HystrixClientFallbackFactory.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientTests$HystrixClientFallbackFactory.class new file mode 100644 index 00000000..ff0441bd Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientTests$HystrixClientFallbackFactory.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientTests$HystrixClientWithFallBackFactory.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientTests$HystrixClientWithFallBackFactory.class new file mode 100644 index 00000000..24831160 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientTests$HystrixClientWithFallBackFactory.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientTests$HystrixSetterFactoryClient.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientTests$HystrixSetterFactoryClient.class new file mode 100644 index 00000000..b9adb65f Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientTests$HystrixSetterFactoryClient.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientTests$LocalRibbonClientConfiguration.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientTests$LocalRibbonClientConfiguration.class new file mode 100644 index 00000000..580142df Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientTests$LocalRibbonClientConfiguration.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientTests$OtherArg.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientTests$OtherArg.class new file mode 100644 index 00000000..7b71f894 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientTests$OtherArg.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientTests$TestClient.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientTests$TestClient.class new file mode 100644 index 00000000..ee294abf Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientTests$TestClient.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientTests$TestClientConfig$1.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientTests$TestClientConfig$1.class new file mode 100644 index 00000000..e0ed3c5a Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientTests$TestClientConfig$1.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientTests$TestClientConfig$2.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientTests$TestClientConfig$2.class new file mode 100644 index 00000000..3119c865 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientTests$TestClientConfig$2.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientTests$TestClientConfig.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientTests$TestClientConfig.class new file mode 100644 index 00000000..fe742f10 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientTests$TestClientConfig.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientTests$TestClientServiceId.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientTests$TestClientServiceId.class new file mode 100644 index 00000000..d245fb70 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientTests$TestClientServiceId.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientTests$TestDefaultFeignConfig.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientTests$TestDefaultFeignConfig.class new file mode 100644 index 00000000..7c12ce70 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientTests$TestDefaultFeignConfig.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientTests$TestHystrixSetterFactoryClientConfig$1.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientTests$TestHystrixSetterFactoryClientConfig$1.class new file mode 100644 index 00000000..9849b26c Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientTests$TestHystrixSetterFactoryClientConfig$1.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientTests$TestHystrixSetterFactoryClientConfig.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientTests$TestHystrixSetterFactoryClientConfig.class new file mode 100644 index 00000000..509820b1 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientTests$TestHystrixSetterFactoryClientConfig.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientTests.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientTests.class new file mode 100644 index 00000000..8ec9fe31 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientTests.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientValidationTests$GoodServiceIdConfiguration$Client.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientValidationTests$GoodServiceIdConfiguration$Client.class new file mode 100644 index 00000000..44006cc9 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientValidationTests$GoodServiceIdConfiguration$Client.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientValidationTests$GoodServiceIdConfiguration.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientValidationTests$GoodServiceIdConfiguration.class new file mode 100644 index 00000000..aff35628 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientValidationTests$GoodServiceIdConfiguration.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientValidationTests$GoodUrlConfiguration$Client.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientValidationTests$GoodUrlConfiguration$Client.class new file mode 100644 index 00000000..686c9264 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientValidationTests$GoodUrlConfiguration$Client.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientValidationTests$GoodUrlConfiguration.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientValidationTests$GoodUrlConfiguration.class new file mode 100644 index 00000000..f44d6e84 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientValidationTests$GoodUrlConfiguration.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientValidationTests$PlaceholderUrlConfiguration$Client.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientValidationTests$PlaceholderUrlConfiguration$Client.class new file mode 100644 index 00000000..aa161a3e Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientValidationTests$PlaceholderUrlConfiguration$Client.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientValidationTests$PlaceholderUrlConfiguration.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientValidationTests$PlaceholderUrlConfiguration.class new file mode 100644 index 00000000..11af4cc8 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientValidationTests$PlaceholderUrlConfiguration.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientValidationTests.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientValidationTests.class new file mode 100644 index 00000000..0701e8a6 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignClientValidationTests.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignHttpClientTests$Application.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignHttpClientTests$Application.class new file mode 100644 index 00000000..7748ea7d Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignHttpClientTests$Application.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignHttpClientTests$BaseTestClient.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignHttpClientTests$BaseTestClient.class new file mode 100644 index 00000000..80bdd1e2 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignHttpClientTests$BaseTestClient.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignHttpClientTests$Hello.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignHttpClientTests$Hello.class new file mode 100644 index 00000000..fb1c2e90 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignHttpClientTests$Hello.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignHttpClientTests$LocalRibbonClientConfiguration.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignHttpClientTests$LocalRibbonClientConfiguration.class new file mode 100644 index 00000000..dfc03fb8 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignHttpClientTests$LocalRibbonClientConfiguration.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignHttpClientTests$TestClient.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignHttpClientTests$TestClient.class new file mode 100644 index 00000000..cd81c800 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignHttpClientTests$TestClient.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignHttpClientTests$User.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignHttpClientTests$User.class new file mode 100644 index 00000000..a34d0655 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignHttpClientTests$User.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignHttpClientTests$UserClient.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignHttpClientTests$UserClient.class new file mode 100644 index 00000000..7c646e39 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignHttpClientTests$UserClient.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignHttpClientTests$UserService.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignHttpClientTests$UserService.class new file mode 100644 index 00000000..83a18d8a Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignHttpClientTests$UserService.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignHttpClientTests.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignHttpClientTests.class new file mode 100644 index 00000000..0c274f3e Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignHttpClientTests.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignOkHttpTests$Application.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignOkHttpTests$Application.class new file mode 100644 index 00000000..5e01ef0f Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignOkHttpTests$Application.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignOkHttpTests$BaseTestClient.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignOkHttpTests$BaseTestClient.class new file mode 100644 index 00000000..3cc214f4 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignOkHttpTests$BaseTestClient.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignOkHttpTests$Hello.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignOkHttpTests$Hello.class new file mode 100644 index 00000000..1df7be36 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignOkHttpTests$Hello.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignOkHttpTests$LocalRibbonClientConfiguration.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignOkHttpTests$LocalRibbonClientConfiguration.class new file mode 100644 index 00000000..121219bc Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignOkHttpTests$LocalRibbonClientConfiguration.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignOkHttpTests$TestClient.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignOkHttpTests$TestClient.class new file mode 100644 index 00000000..80d4d957 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignOkHttpTests$TestClient.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignOkHttpTests$User.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignOkHttpTests$User.class new file mode 100644 index 00000000..776d8527 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignOkHttpTests$User.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignOkHttpTests$UserClient.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignOkHttpTests$UserClient.class new file mode 100644 index 00000000..e0e4cf1b Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignOkHttpTests$UserClient.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignOkHttpTests$UserService.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignOkHttpTests$UserService.class new file mode 100644 index 00000000..3d08c468 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignOkHttpTests$UserService.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignOkHttpTests.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignOkHttpTests.class new file mode 100644 index 00000000..b9b75c54 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/FeignOkHttpTests.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/scanning/FeignClientEnvVarTests$Application.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/scanning/FeignClientEnvVarTests$Application.class new file mode 100644 index 00000000..1c0fc9c1 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/scanning/FeignClientEnvVarTests$Application.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/scanning/FeignClientEnvVarTests$LocalRibbonClientConfiguration.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/scanning/FeignClientEnvVarTests$LocalRibbonClientConfiguration.class new file mode 100644 index 00000000..f278b450 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/scanning/FeignClientEnvVarTests$LocalRibbonClientConfiguration.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/scanning/FeignClientEnvVarTests.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/scanning/FeignClientEnvVarTests.class new file mode 100644 index 00000000..8e0f1739 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/scanning/FeignClientEnvVarTests.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/scanning/FeignClientScanningTests$Application.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/scanning/FeignClientScanningTests$Application.class new file mode 100644 index 00000000..34d9f079 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/scanning/FeignClientScanningTests$Application.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/scanning/FeignClientScanningTests$LocalRibbonClientConfiguration.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/scanning/FeignClientScanningTests$LocalRibbonClientConfiguration.class new file mode 100644 index 00000000..fefe6286 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/scanning/FeignClientScanningTests$LocalRibbonClientConfiguration.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/scanning/FeignClientScanningTests$TestClient.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/scanning/FeignClientScanningTests$TestClient.class new file mode 100644 index 00000000..58483114 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/scanning/FeignClientScanningTests$TestClient.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/scanning/FeignClientScanningTests$TestClientByKey.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/scanning/FeignClientScanningTests$TestClientByKey.class new file mode 100644 index 00000000..889557a6 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/scanning/FeignClientScanningTests$TestClientByKey.class differ diff --git a/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/scanning/FeignClientScanningTests.class b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/scanning/FeignClientScanningTests.class new file mode 100644 index 00000000..a3b46c05 Binary files /dev/null and b/spring-cloud-openfeign-core/target/test-classes/org/springframework/cloud/openfeign/valid/scanning/FeignClientScanningTests.class differ diff --git a/spring-cloud-openfeign.html b/spring-cloud-openfeign.html new file mode 100644 index 00000000..39a0e2ac --- /dev/null +++ b/spring-cloud-openfeign.html @@ -0,0 +1,117 @@ + + + + + + + +spring-cloud-openfeign + + + + + + + + +
+
+
+
+

2.0.0.BUILD-SNAPSHOT

+
+
+
+
+

Pick The Documentation Option

+
+
+ +
+
+
+
+ + + + + \ No newline at end of file diff --git a/spring-cloud-openfeign.xml b/spring-cloud-openfeign.xml new file mode 100644 index 00000000..abd08d14 --- /dev/null +++ b/spring-cloud-openfeign.xml @@ -0,0 +1,395 @@ + + + + + +Spring Cloud OpenFeign +2018-03-09 + + + +2.0.0.BUILD-SNAPSHOT +This project provides OpenFeign integrations for Spring Boot apps through autoconfiguration +and binding to the Spring Environment and other Spring programming model idioms. + + +Declarative REST Client: Feign +Feign is a declarative web service client. It makes writing web service clients easier. To use Feign create an interface and annotate it. It has pluggable annotation support including Feign annotations and JAX-RS annotations. Feign also supports pluggable encoders and decoders. Spring Cloud adds support for Spring MVC annotations and for using the same HttpMessageConverters used by default in Spring Web. Spring Cloud integrates Ribbon and Eureka to provide a load balanced http client when using Feign. +
+How to Include Feign +To include Feign in your project use the starter with group org.springframework.cloud +and artifact id spring-cloud-starter-openfeign. See the Spring Cloud Project page +for details on setting up your build system with the current Spring Cloud Release Train. +Example spring boot app +@SpringBootApplication +@EnableFeignClients +public class Application { + + public static void main(String[] args) { + SpringApplication.run(Application.class, args); + } + +} + +StoreClient.java + +@FeignClient("stores") +public interface StoreClient { + @RequestMapping(method = RequestMethod.GET, value = "/stores") + List<Store> getStores(); + + @RequestMapping(method = RequestMethod.POST, value = "/stores/{storeId}", consumes = "application/json") + Store update(@PathVariable("storeId") Long storeId, Store store); +} + + +In the @FeignClient annotation the String value ("stores" above) is +an arbitrary client name, which is used to create a Ribbon load +balancer (see below for details of Ribbon +support). You can also specify a URL using the url attribute +(absolute value or just a hostname). The name of the bean in the +application context is the fully qualified name of the interface. +To specify your own alias value you can use the qualifier value +of the @FeignClient annotation. +The Ribbon client above will want to discover the physical addresses +for the "stores" service. If your application is a Eureka client then +it will resolve the service in the Eureka service registry. If you +don’t want to use Eureka, you can simply configure a list of servers +in your external configuration (see +above for example). +
+
+Overriding Feign Defaults +A central concept in Spring Cloud’s Feign support is that of the named client. Each feign client is part of an ensemble of components that work together to contact a remote server on demand, and the ensemble has a name that you give it as an application developer using the @FeignClient annotation. Spring Cloud creates a new ensemble as an +ApplicationContext on demand for each named client using FeignClientsConfiguration. This contains (amongst other things) an feign.Decoder, a feign.Encoder, and a feign.Contract. +Spring Cloud lets you take full control of the feign client by declaring additional configuration (on top of the FeignClientsConfiguration) using @FeignClient. Example: +@FeignClient(name = "stores", configuration = FooConfiguration.class) +public interface StoreClient { + //.. +} +In this case the client is composed from the components already in FeignClientsConfiguration together with any in FooConfiguration (where the latter will override the former). + +FooConfiguration does not need to be annotated with @Configuration. However, if it is, then take care to exclude it from any @ComponentScan that would otherwise include this configuration as it will become the default source for feign.Decoder, feign.Encoder, feign.Contract, etc., when specified. This can be avoided by putting it in a separate, non-overlapping package from any @ComponentScan or @SpringBootApplication, or it can be explicitly excluded in @ComponentScan. + + +The serviceId attribute is now deprecated in favor of the name attribute. + + +Previously, using the url attribute, did not require the name attribute. Using name is now required. + +Placeholders are supported in the name and url attributes. +@FeignClient(name = "${feign.name}", url = "${feign.url}") +public interface StoreClient { + //.. +} +Spring Cloud Netflix provides the following beans by default for feign (BeanType beanName: ClassName): + + +Decoder feignDecoder: ResponseEntityDecoder (which wraps a SpringDecoder) + + +Encoder feignEncoder: SpringEncoder + + +Logger feignLogger: Slf4jLogger + + +Contract feignContract: SpringMvcContract + + +Feign.Builder feignBuilder: HystrixFeign.Builder + + +Client feignClient: if Ribbon is enabled it is a LoadBalancerFeignClient, otherwise the default feign client is used. + + +The OkHttpClient and ApacheHttpClient feign clients can be used by setting feign.okhttp.enabled or feign.httpclient.enabled to true, respectively, and having them on the classpath. +You can customize the HTTP client used by providing a bean of either ClosableHttpClient when using Apache or OkHttpClient whe using OK HTTP. +Spring Cloud Netflix does not provide the following beans by default for feign, but still looks up beans of these types from the application context to create the feign client: + + +Logger.Level + + +Retryer + + +ErrorDecoder + + +Request.Options + + +Collection<RequestInterceptor> + + +SetterFactory + + +Creating a bean of one of those type and placing it in a @FeignClient configuration (such as FooConfiguration above) allows you to override each one of the beans described. Example: +@Configuration +public class FooConfiguration { + @Bean + public Contract feignContract() { + return new feign.Contract.Default(); + } + + @Bean + public BasicAuthRequestInterceptor basicAuthRequestInterceptor() { + return new BasicAuthRequestInterceptor("user", "password"); + } +} +This replaces the SpringMvcContract with feign.Contract.Default and adds a RequestInterceptor to the collection of RequestInterceptor. +@FeignClient also can be configured using configuration properties. +application.yml +feign: + client: + config: + feignName: + connectTimeout: 5000 + readTimeout: 5000 + loggerLevel: full + errorDecoder: com.example.SimpleErrorDecoder + retryer: com.example.SimpleRetryer + requestInterceptors: + - com.example.FooRequestInterceptor + - com.example.BarRequestInterceptor + decode404: false + encoder: com.example.SimpleEncoder + decoder: com.example.SimpleDecoder + contract: com.example.SimpleContract +Default configurations can be specified in the @EnableFeignClients attribute defaultConfiguration in a similar manner as described above. The difference is that this configuration will apply to all feign clients. +If you prefer using configuration properties to configured all @FeignClient, you can create configuration properties with default feign name. +application.yml +feign: + client: + config: + default: + connectTimeout: 5000 + readTimeout: 5000 + loggerLevel: basic +If we create both @Configuration bean and configuration properties, configuration properties will win. +It will override @Configuration values. But if you want to change the priority to @Configuration, +you can change feign.client.default-to-properties to false. + +If you need to use ThreadLocal bound variables in your RequestInterceptor`s you will need to either set the +thread isolation strategy for Hystrix to `SEMAPHORE or disable Hystrix in Feign. + +application.yml +# To disable Hystrix in Feign +feign: + hystrix: + enabled: false + +# To set thread isolation to SEMAPHORE +hystrix: + command: + default: + execution: + isolation: + strategy: SEMAPHORE +
+
+Creating Feign Clients Manually +In some cases it might be necessary to customize your Feign Clients in a way that is not +possible using the methods above. In this case you can create Clients using the +Feign Builder API. Below is an example +which creates two Feign Clients with the same interface but configures each one with +a separate request interceptor. +@Import(FeignClientsConfiguration.class) +class FooController { + + private FooClient fooClient; + + private FooClient adminClient; + + @Autowired + public FooController( + Decoder decoder, Encoder encoder, Client client, Contract contract) { + this.fooClient = Feign.builder().client(client) + .encoder(encoder) + .decoder(decoder) + .contract(contract) + .requestInterceptor(new BasicAuthRequestInterceptor("user", "user")) + .target(FooClient.class, "http://PROD-SVC"); + this.adminClient = Feign.builder().client(client) + .encoder(encoder) + .decoder(decoder) + .contract(contract) + .requestInterceptor(new BasicAuthRequestInterceptor("admin", "admin")) + .target(FooClient.class, "http://PROD-SVC"); + } +} + +In the above example FeignClientsConfiguration.class is the default configuration +provided by Spring Cloud Netflix. + + +PROD-SVC is the name of the service the Clients will be making requests to. + + +The Feign Contract object defines what annotations and values are valid on interfaces. The +autowired Contract bean provides supports for SpringMVC annotations, instead of +the default Feign native annotations. + +
+
+Feign Hystrix Support +If Hystrix is on the classpath and feign.hystrix.enabled=true, Feign will wrap all methods with a circuit breaker. Returning a com.netflix.hystrix.HystrixCommand is also available. This lets you use reactive patterns (with a call to .toObservable() or .observe() or asynchronous use (with a call to .queue()). +To disable Hystrix support on a per-client basis create a vanilla Feign.Builder with the "prototype" scope, e.g.: +@Configuration +public class FooConfiguration { + @Bean + @Scope("prototype") + public Feign.Builder feignBuilder() { + return Feign.builder(); + } +} + +Prior to the Spring Cloud Dalston release, if Hystrix was on the classpath Feign would have wrapped +all methods in a circuit breaker by default. This default behavior was changed in Spring Cloud Dalston in +favor for an opt-in approach. + +
+
+Feign Hystrix Fallbacks +Hystrix supports the notion of a fallback: a default code path that is executed when they circuit is open or there is an error. To enable fallbacks for a given @FeignClient set the fallback attribute to the class name that implements the fallback. You also need to declare your implementation as a Spring bean. +@FeignClient(name = "hello", fallback = HystrixClientFallback.class) +protected interface HystrixClient { + @RequestMapping(method = RequestMethod.GET, value = "/hello") + Hello iFailSometimes(); +} + +static class HystrixClientFallback implements HystrixClient { + @Override + public Hello iFailSometimes() { + return new Hello("fallback"); + } +} +If one needs access to the cause that made the fallback trigger, one can use the fallbackFactory attribute inside @FeignClient. +@FeignClient(name = "hello", fallbackFactory = HystrixClientFallbackFactory.class) +protected interface HystrixClient { + @RequestMapping(method = RequestMethod.GET, value = "/hello") + Hello iFailSometimes(); +} + +@Component +static class HystrixClientFallbackFactory implements FallbackFactory<HystrixClient> { + @Override + public HystrixClient create(Throwable cause) { + return new HystrixClient() { + @Override + public Hello iFailSometimes() { + return new Hello("fallback; reason was: " + cause.getMessage()); + } + }; + } +} + +There is a limitation with the implementation of fallbacks in Feign and how Hystrix fallbacks work. Fallbacks are currently not supported for methods that return com.netflix.hystrix.HystrixCommand and rx.Observable. + +
+
+Feign and <literal>@Primary</literal> +When using Feign with Hystrix fallbacks, there are multiple beans in the ApplicationContext of the same type. This will cause @Autowired to not work because there isn’t exactly one bean, or one marked as primary. To work around this, Spring Cloud Netflix marks all Feign instances as @Primary, so Spring Framework will know which bean to inject. In some cases, this may not be desirable. To turn off this behavior set the primary attribute of @FeignClient to false. +@FeignClient(name = "hello", primary = false) +public interface HelloClient { + // methods here +} +
+
+Feign Inheritance Support +Feign supports boilerplate apis via single-inheritance interfaces. +This allows grouping common operations into convenient base interfaces. + +UserService.java + +public interface UserService { + + @RequestMapping(method = RequestMethod.GET, value ="/users/{id}") + User getUser(@PathVariable("id") long id); +} + + + +UserResource.java + +@RestController +public class UserResource implements UserService { + +} + + + +UserClient.java + +package project.user; + +@FeignClient("users") +public interface UserClient extends UserService { + +} + + + +It is generally not advisable to share an interface between a +server and a client. It introduces tight coupling, and also actually +doesn’t work with Spring MVC in its current form (method parameter +mapping is not inherited). + +
+
+Feign request/response compression +You may consider enabling the request or response GZIP compression for your +Feign requests. You can do this by enabling one of the properties: +feign.compression.request.enabled=true +feign.compression.response.enabled=true +Feign request compression gives you settings similar to what you may set for your web server: +feign.compression.request.enabled=true +feign.compression.request.mime-types=text/xml,application/xml,application/json +feign.compression.request.min-request-size=2048 +These properties allow you to be selective about the compressed media types and minimum request threshold length. +
+
+Feign logging +A logger is created for each Feign client created. By default the name of the logger is the full class name of the interface used to create the Feign client. Feign logging only responds to the DEBUG level. + +application.yml + +logging.level.project.user.UserClient: DEBUG + + +The Logger.Level object that you may configure per client, tells Feign how much to log. Choices are: + + +NONE, No logging (DEFAULT). + + +BASIC, Log only the request method and URL and the response status code and execution time. + + +HEADERS, Log the basic information along with request and response headers. + + +FULL, Log the headers, body, and metadata for both requests and responses. + + +For example, the following would set the Logger.Level to FULL: +@Configuration +public class FooConfiguration { + @Bean + Logger.Level feignLoggerLevel() { + return Logger.Level.FULL; + } +} + OtherClass.someMethod(myprop.get()); + } +} +stripped). The proxy uses Ribbon to locate an instance to forward to +via discovery, and all requests are executed in a +<<hystrix-fallbacks-for-routes, hystrix command>>, so +failures will show up in Hystrix metrics, and once the circuit is open +the proxy will not try to contact the service. +
+
+
\ No newline at end of file diff --git a/spring-cloud-starter-openfeign/target/classes/META-INF/spring.provides b/spring-cloud-starter-openfeign/target/classes/META-INF/spring.provides new file mode 100644 index 00000000..ee5b1c80 --- /dev/null +++ b/spring-cloud-starter-openfeign/target/classes/META-INF/spring.provides @@ -0,0 +1 @@ +provides: spring-cloud-openfeign-core \ No newline at end of file diff --git a/spring-cloud-starter-openfeign/target/javadoc-bundle-options/javadoc-options-javadoc-resources.xml b/spring-cloud-starter-openfeign/target/javadoc-bundle-options/javadoc-options-javadoc-resources.xml new file mode 100644 index 00000000..8b89c977 --- /dev/null +++ b/spring-cloud-starter-openfeign/target/javadoc-bundle-options/javadoc-options-javadoc-resources.xml @@ -0,0 +1,10 @@ + + + + + + + + + src/main/javadoc + diff --git a/spring-cloud-starter-openfeign/target/maven-archiver/pom.properties b/spring-cloud-starter-openfeign/target/maven-archiver/pom.properties new file mode 100644 index 00000000..9b477013 --- /dev/null +++ b/spring-cloud-starter-openfeign/target/maven-archiver/pom.properties @@ -0,0 +1,5 @@ +#Created by Apache Maven 3.5.0 +#Fri Mar 09 01:26:33 UTC 2018 +version=2.0.0.BUILD-SNAPSHOT +groupId=org.springframework.cloud +artifactId=spring-cloud-starter-openfeign diff --git a/spring-cloud-starter-openfeign/target/spring-cloud-starter-openfeign-2.0.0.BUILD-SNAPSHOT-sources.jar b/spring-cloud-starter-openfeign/target/spring-cloud-starter-openfeign-2.0.0.BUILD-SNAPSHOT-sources.jar new file mode 100644 index 00000000..2aa16b6e Binary files /dev/null and b/spring-cloud-starter-openfeign/target/spring-cloud-starter-openfeign-2.0.0.BUILD-SNAPSHOT-sources.jar differ diff --git a/spring-cloud-starter-openfeign/target/spring-cloud-starter-openfeign-2.0.0.BUILD-SNAPSHOT.jar b/spring-cloud-starter-openfeign/target/spring-cloud-starter-openfeign-2.0.0.BUILD-SNAPSHOT.jar new file mode 100644 index 00000000..28e1448f Binary files /dev/null and b/spring-cloud-starter-openfeign/target/spring-cloud-starter-openfeign-2.0.0.BUILD-SNAPSHOT.jar differ diff --git a/target/ghpages.sh b/target/ghpages.sh new file mode 100755 index 00000000..09435af1 --- /dev/null +++ b/target/ghpages.sh @@ -0,0 +1,360 @@ +#!/bin/bash -x + +# Usage: (cd ; ghpages.sh -v -b -c) + +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:-} + if [ -e "${ROOT_FOLDER}/mvnw" ]; then + MAVEN_EXEC="$ROOT_FOLDER/mvnw" + else + MAVEN_EXEC="${MAVEN_PATH}mvn" + fi + echo "Path to Maven is [${MAVEN_EXEC}]" + if [ -z $REPO_NAME ]; then + REPO_NAME=$(git remote -v | grep origin | head -1 | sed -e 's!.*/!!' -e 's/ .*//' -e 's/\.git.*//') + fi + 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) && [[ "${RELEASE_TRAIN}" != "yes" ]] ; 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 + # http://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" + PREVIOUS_BRANCH=${CURRENT_BRANCH} +} + +# Switches to the provided value of the release version. We always prefix it with `v` +function switch_to_tag() { + if [[ "${RELEASE_TRAIN}" != "yes" ]] ; then + git checkout v${VERSION} + fi +} + +# 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_EXEC}" -q \ + -Dexec.executable="echo" \ + -Dexec.args='${docs.main}' \ + org.codehaus.mojo:exec-maven-plugin:1.3.1:exec \ + -P docs \ + -pl docs | tail -1 ) + echo "Extracted 'main.adoc' from Maven build [${MAIN_ADOC_VALUE}]" + + + WHITELIST_PROPERTY=${WHITELIST_PROPERTY:-"docs.whitelisted.branches"} + WHITELISTED_BRANCHES_VALUE=$("${MAVEN_EXEC}" -q \ + -Dexec.executable="echo" \ + -Dexec.args="\${${WHITELIST_PROPERTY}}" \ + org.codehaus.mojo:exec-maven-plugin:1.3.1:exec \ + -P docs \ + -pl docs | tail -1 ) + 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} && cd ${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 + if [[ -z "${RELEASE_TRAIN}" ]] ; then + DESTINATION_REPO_FOLDER=${clonedStatic}/${REPO_NAME} + else + DESTINATION_REPO_FOLDER=${clonedStatic} + fi + mkdir -p ${DESTINATION_REPO_FOLDER} + else + if [[ ! -e "${DESTINATION}/.git" ]]; then + echo "[${DESTINATION}] is not a git repository" + exit 1 + fi + if [[ -z "${RELEASE_TRAIN}" ]] ; then + DESTINATION_REPO_FOLDER=${DESTINATION}/${REPO_NAME} + else + DESTINATION_REPO_FOLDER=${DESTINATION} + fi + 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}" && -z "${RELEASE_TRAIN}" ]] ; 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}/ + fi + done + git add -A ${ROOT_FOLDER} + COMMIT_CHANGES="yes" + else + echo -e "Current branch is [${CURRENT_BRANCH}]" + # http://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 || echo "Failed to add the file [$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 + else + cp -rf $f ${destination} + fi + git add -A ${destination} + 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 ${PREVIOUS_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}], RELEASE_TRAIN [${RELEASE_TRAIN}], 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 +if [[ "${RELEASE_TRAIN}" != "" && -z "${VERSION}" ]] ; then echo "Release train was set but no version was passed!"; 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//` +- if the release train switch is passed (-r) 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 +-r|--releasetrain - instead of nesting the docs under the project_name/version folder the docs will end up in 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 + ;; + -r|--releasetrain) + RELEASE_TRAIN="yes" + ;; + -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 +retrieve_current_branch +if echo $VERSION | egrep -q 'SNAPSHOT' || [[ -z "${VERSION}" ]]; then + CLONE="" + VERSION="" + echo "You've provided a version variable but it's a snapshot one. Due to this will not clone spring-cloud-static and publish docs over there" +else + switch_to_tag +fi +build_docs_if_applicable +retrieve_doc_properties +stash_changes +add_docs_from_target +checkout_previous_branch