diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/.gitignore b/docs/src/test/bats/fixtures/gs-contract-rest/.gitignore
deleted file mode 100644
index 375d5833..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/.gitignore
+++ /dev/null
@@ -1,32 +0,0 @@
-# Operating System Files
-
-*.DS_Store
-Thumbs.db
-*.sw?
-.#*
-*#
-*~
-*.sublime-*
-
-# Build Artifacts
-
-.gradle/
-build/
-target/
-bin/
-dependency-reduced-pom.xml
-
-# Eclipse Project Files
-
-.classpath
-.project
-.settings/
-
-# IntelliJ IDEA Files
-
-*.iml
-*.ipr
-*.iws
-*.idea
-
-README.html
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/.travis.yml b/docs/src/test/bats/fixtures/gs-contract-rest/.travis.yml
deleted file mode 100644
index c8f717c8..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/.travis.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-sudo: false
-language: java
-jdk:
-- oraclejdk8
-script:
-- test/run.sh
-notifications:
- slack:
- secure: Ces2qauynvAzEFvvYCBLTvatyct8JE6EjHWUGDBdaIGuFpqtW+9zuwWL4Ls0+w+GZoprVAIk+G47qt/ax/Us4xQlIcmp8w+IHbyhSK2oGKzGumP5KOUrMqu6zEt3PhTr3q3ub9RNvafdsIhpDVWtmSZbNHkm8uOpzd14mjUn9ACp0WOt3MWNqh+wgkJnep2PSrF3mzuPs1Yqs2FN379qqijjQTsAs5dmJO9KDejELnB3SaAIicr0hFzMU/x1LR1VXTIF+M4s+bJcxUdmN8BJWsvwNf5sBAzTRMoNitONfOCrf53v9nl//cK8xDp2/CyCj/ZZB1W7XmTxeyS5l+U2QivoEvPEjqQTktbbFNeBxtEPucizMlE5nOkBA5zq1MQlDQM/0NoUKd3yb46FZQiHKWOcQ9erwPZuuoS9tecdM2k0hzMbZ/jhNMOsyiM3fo6VcrEh1oVlgTfgx9cNHuSplI9BwReyB1R+m4GVF6j72Kp2Om938xBZtT14gcuAjpORYVXFqGYmUM3m3qxGghEJMs7f1uoTNiSRstYJpZQdPZDYW+X9teSsyRss9iw7xYminYOiywjyGJEdnFBETdFPQ0u5A6mC/dyTE+k4vCyOJXHK+6m62UnObonqYIbSJFiBGnBU0KOloj2DyqtgifcU8wTu5OEg7ljlqu9qfxwuzmQ=
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/CONTRIBUTING.adoc b/docs/src/test/bats/fixtures/gs-contract-rest/CONTRIBUTING.adoc
deleted file mode 100644
index a97e428a..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/CONTRIBUTING.adoc
+++ /dev/null
@@ -1,2 +0,0 @@
-If you have not previously done so, please fill out and
-submit the https://cla.pivotal.io/sign/spring[Contributor License Agreement].
\ No newline at end of file
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/LICENSE.code.txt b/docs/src/test/bats/fixtures/gs-contract-rest/LICENSE.code.txt
deleted file mode 100644
index 36bd6bb6..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/LICENSE.code.txt
+++ /dev/null
@@ -1,16 +0,0 @@
- All code in this repository is:
- =======================================================================
- Copyright (c) 2013 GoPivotal, Inc. All Rights Reserved
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/LICENSE.writing.txt b/docs/src/test/bats/fixtures/gs-contract-rest/LICENSE.writing.txt
deleted file mode 100644
index 90247b3f..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/LICENSE.writing.txt
+++ /dev/null
@@ -1 +0,0 @@
-Except where otherwise noted, this work is licensed under http://creativecommons.org/licenses/by-nd/3.0/
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/README.adoc b/docs/src/test/bats/fixtures/gs-contract-rest/README.adoc
deleted file mode 100644
index 656cf310..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/README.adoc
+++ /dev/null
@@ -1,203 +0,0 @@
-:spring_version: current
-:spring_boot_version: 2.1.4.RELEASE
-:Controller: http://docs.spring.io/spring/docs/{spring_version}/javadoc-api/org/springframework/stereotype/Controller.html
-:DispatcherServlet: http://docs.spring.io/spring/docs/{spring_version}/javadoc-api/org/springframework/web/servlet/DispatcherServlet.html
-:SpringApplication: http://docs.spring.io/spring-boot/docs/{spring_boot_version}/api/org/springframework/boot/SpringApplication.html
-:ResponseBody: http://docs.spring.io/spring/docs/{spring_version}/javadoc-api/org/springframework/web/bind/annotation/ResponseBody.html
-:toc:
-:icons: font
-:source-highlighter: prettify
-:project_id: gs-contract-rest
-This guide walks you through the process of creating a Spring REST application with its contract stubs and consuming the contract within an other Spring application. https://cloud.spring.io/spring-cloud-contract[Spring Cloud Contract Project]
-
-
-== What you'll build
-
-You'll setup two micro services one providing its contract, and the other one consuming this contract to make sure that the integration to the contract provider service is aligned with the specifications. If in the future, the contract of the producer service changes, then the consumer service's tests fail catching the potential incompatibility.
-
-
-== What you'll need
-
-:java_version: 1.8
-include::https://raw.githubusercontent.com/spring-guides/getting-started-macros/master/prereq_editor_jdk_buildtools.adoc[]
-
-include::https://raw.githubusercontent.com/spring-guides/getting-started-macros/master/how_to_complete_this_guide.adoc[]
-
-
-[[reveal-gradle]]
-[.reveal-gradle]
-== Build with Gradle
-
-[[scratch]]
-[.use-gradle]
-== Build with Gradle
-
-include::https://raw.githubusercontent.com/spring-guides/getting-started-macros/master/build_system_intro.adoc[]
-
-include::https://raw.githubusercontent.com/spring-guides/getting-started-macros/master/create_directory_structure_hello.adoc[]
-
-include::https://raw.githubusercontent.com/spring-guides/getting-started-macros/master/create_both_builds.adoc[]
-
-`contract-rest-service/build.gradle`
-// AsciiDoc source formatting doesn't support groovy, so using java instead
-[source,java]
-----
-include::https://raw.githubusercontent.com/spring-guides/{project_id}/master/initial/contract-rest-service/build.gradle[]
-----
-
-`contract-rest-client/build.gradle`
-// AsciiDoc source formatting doesn't support groovy, so using java instead
-[source,java]
-----
-include::https://raw.githubusercontent.com/spring-guides/{project_id}/master/initial/contract-rest-client/build.gradle[]
-----
-
-include::https://raw.githubusercontent.com/spring-guides/getting-started-macros/master/spring-boot-gradle-plugin.adoc[]
-
-[[reveal-maven]]
-[.reveal-maven]
-== Build with Maven
-
-[[use-maven]]
-[.use-maven]
-== Build with Maven
-
-include::https://raw.githubusercontent.com/spring-guides/getting-started-macros/master/build_system_intro_maven.adoc[]
-
-include::https://raw.githubusercontent.com/spring-guides/getting-started-macros/master/create_directory_structure_hello.adoc[]
-
-To get you started quickly, here are the complete configurations for the server and client applications:
-
-`contract-rest-service/pom.xml`
-[source,xml]
-----
-include::https://raw.githubusercontent.com/spring-guides/{project_id}/master/initial/contract-rest-service/pom.xml[]
-----
-
-`contract-rest-client/pom.xml`
-[source,xml]
-----
-include::https://raw.githubusercontent.com/spring-guides/{project_id}/master/initial/contract-rest-client/pom.xml[]
-----
-
-include::https://raw.githubusercontent.com/spring-guides/getting-started-macros/master/spring-boot-maven-plugin.adoc[]
-
-include::https://raw.githubusercontent.com/spring-guides/getting-started-macros/master/hide-show-sts.adoc[]
-
-
-[[initial]]
-== Create contract producer service
-
-You'll first need to create the service which produces the contract. This is a regular Spring Boot application providing a very simple REST service. The rest service simply returns a `Person` object in JSON.
-
-`contract-rest-service/src/main/java/hello/ContractRestServiceApplication.java`
-[source,java]
-----
-include::complete/contract-rest-service/src/main/java/hello/ContractRestServiceApplication.java[]
-----
-
-=== Create the contract of the REST service
-
-The contract of the REST service can be defined as a `.groovy` script. This contract specifies that if there is a `GET` request to url `/person/1`, sample data `id=1`, `name=foo` and `surname=bee` representing a `Person` entity will be returned in the response body of content-type `application/json` .
-
-`contract-rest-service/src/test/resources/contracts/hello/find_person_by_id.groovy`
-[source,java]
-----
-include::complete/contract-rest-service/src/test/resources/contracts/hello/find_person_by_id.groovy[]
-----
-
-At the `test` phase, automatic test classes will be created for the contract specified in the groovy file. The auto generated test java classes will extend the `hello.BaseClass`.
-[source,xml]
-----
-
- org.springframework.cloud
- spring-cloud-contract-maven-plugin
- ${spring-cloud-contract.version}
- true
-
- hello.BaseClass
-
-
-----
-
-`contract-rest-service/src/test/java/hello/BaseClass.java`
-[source,java]
-----
-include::complete/contract-rest-service/src/test/java/hello/BaseClass.java[]
-----
-
-At this step, when the tests are executed, test results should be GREEN indicating that the REST controller is aligned with the contract and you have a fully functioning service.
-
-==== Check the simple Person query business logic
-
-Model class `Person.java`
-`contract-rest-service/src/main/java/hello/Person.java`
-[source,java]
-----
-include::complete/contract-rest-service/src/main/java/hello/Person.java[]
-----
-
-Service bean `PersonService.java` which just populates a few Person entity in memory and returns the one when asked.
-`contract-rest-service/src/main/java/hello/PersonService.java`
-[source,java]
-----
-include::complete/contract-rest-service/src/main/java/hello/PersonService.java[]
-----
-
-RestController bean `PersonRestController.java` which calls `PersonService` bean when a REST request is received for a person with the id.
-`contract-rest-service/src/main/java/hello/PersonRestController.java`
-[source,java]
-----
-include::complete/contract-rest-service/src/main/java/hello/PersonRestController.java[]
-----
-
-=== Test the contract-rest-service application
-
-Run the `ContractRestServiceApplication.java` class as a Java Application or Spring Boot Application. The service should start at port `8000`.
-
-Visit the service in the browser `http://localhost:8000/person/1`, `http://localhost:8000/person/2`, etc.
-
-== Create contract consumer service
-
-With the contract producer service ready, now we need to crate the client application which consumes the contract provided. This is a regular Spring Boot application providing a very simple REST service. The rest service simply returns a message with the queried Person's name, e.g. `Hello Anna`.
-
-`contract-rest-client/src/main/java/hello/ContractRestClientApplication.java`
-[source,java]
-----
-include::complete/contract-rest-client/src/main/java/hello/ContractRestClientApplication.java[]
-----
-
-=== Create the contract test
-
-The contract provided by the producer should be consumed as a simple Spring test.
-
-`contract-rest-client/src/test/java/hello/ContractRestClientApplicationTest.java`
-[source,java]
-----
-include::complete/contract-rest-client/src/test/java/hello/ContractRestClientApplicationTest.java[]
-----
-
-This test class will load the stubs of the contract producer service and make sure that the integration to the service is aligned with the contract.
-
-In case the communication is faulty between the consumer service's test and the producer's contract, tests will fail and the problem will need to be fixed before making a new change on production.
-
-=== Test the contract-rest-client application
-
-Run the `ContractRestClientApplication.java` class as a Java Application or Spring Boot Application. The service should start at port `9000`.
-
-Visit the service in the browser `http://localhost:9000/message/1`, `http://localhost:9000/message/2`, etc.
-
-
-== Summary
-
-Congratulations! You've just used Spring to make your REST services declare their contract and consumer service be aligned with this contract.
-
-
-== See Also
-
-The following guides may also be helpful:
-
-* https://spring.io/guides/gs/spring-boot/[Building an Application with Spring Boot]
-* https://spring.io/guides/gs/multi-module/[Creating a Multi Module Project]
-
-include::https://raw.githubusercontent.com/spring-guides/getting-started-macros/master/footer.adoc[]
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/complete/.mvn/wrapper/maven-wrapper.jar b/docs/src/test/bats/fixtures/gs-contract-rest/complete/.mvn/wrapper/maven-wrapper.jar
deleted file mode 100644
index 5fd4d502..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/complete/.mvn/wrapper/maven-wrapper.jar and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/complete/.mvn/wrapper/maven-wrapper.properties b/docs/src/test/bats/fixtures/gs-contract-rest/complete/.mvn/wrapper/maven-wrapper.properties
deleted file mode 100644
index c954cec9..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/complete/.mvn/wrapper/maven-wrapper.properties
+++ /dev/null
@@ -1 +0,0 @@
-distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.3.9/apache-maven-3.3.9-bin.zip
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/complete/contract-rest-client/build.gradle b/docs/src/test/bats/fixtures/gs-contract-rest/complete/contract-rest-client/build.gradle
deleted file mode 100644
index 19acf2f6..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/complete/contract-rest-client/build.gradle
+++ /dev/null
@@ -1,43 +0,0 @@
-buildscript {
- ext { springBootVersion = '2.1.4.RELEASE' }
- repositories { mavenCentral() }
- dependencies {
- classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
- }
-}
-
-apply plugin: 'java'
-apply plugin: 'eclipse'
-apply plugin: 'idea'
-apply plugin: 'org.springframework.boot'
-apply plugin: 'io.spring.dependency-management'
-
-group = 'com.example'
-version = '0.0.1-SNAPSHOT'
-bootJar {
- baseName = 'contract-rest-client'
-}
-sourceCompatibility = 1.8
-targetCompatibility = 1.8
-
-repositories { mavenCentral() }
-
-dependencies {
- compile('org.springframework.boot:spring-boot-starter-web')
- testCompile('org.springframework.boot:spring-boot-starter-test')
- testCompile('org.springframework.cloud:spring-cloud-starter-contract-stub-runner')
-}
-
-dependencyManagement {
- imports {
- mavenBom "org.springframework.cloud:spring-cloud-dependencies:Finchley.SR2"
- }
-}
-
-eclipse {
- classpath {
- containers.remove('org.eclipse.jdt.launching.JRE_CONTAINER')
- containers 'org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8'
- }
-}
-
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/complete/contract-rest-client/gradle/wrapper/gradle-wrapper.jar b/docs/src/test/bats/fixtures/gs-contract-rest/complete/contract-rest-client/gradle/wrapper/gradle-wrapper.jar
deleted file mode 100644
index 6b6ea3ab..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/complete/contract-rest-client/gradle/wrapper/gradle-wrapper.jar and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/complete/contract-rest-client/gradle/wrapper/gradle-wrapper.properties b/docs/src/test/bats/fixtures/gs-contract-rest/complete/contract-rest-client/gradle/wrapper/gradle-wrapper.properties
deleted file mode 100644
index ea720f98..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/complete/contract-rest-client/gradle/wrapper/gradle-wrapper.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-distributionBase=GRADLE_USER_HOME
-distributionPath=wrapper/dists
-zipStoreBase=GRADLE_USER_HOME
-zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-bin.zip
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/complete/contract-rest-client/gradlew b/docs/src/test/bats/fixtures/gs-contract-rest/complete/contract-rest-client/gradlew
deleted file mode 100755
index cccdd3d5..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/complete/contract-rest-client/gradlew
+++ /dev/null
@@ -1,172 +0,0 @@
-#!/usr/bin/env sh
-
-##############################################################################
-##
-## Gradle start up script for UN*X
-##
-##############################################################################
-
-# Attempt to set APP_HOME
-# Resolve links: $0 may be a link
-PRG="$0"
-# Need this for relative symlinks.
-while [ -h "$PRG" ] ; do
- ls=`ls -ld "$PRG"`
- link=`expr "$ls" : '.*-> \(.*\)$'`
- if expr "$link" : '/.*' > /dev/null; then
- PRG="$link"
- else
- PRG=`dirname "$PRG"`"/$link"
- fi
-done
-SAVED="`pwd`"
-cd "`dirname \"$PRG\"`/" >/dev/null
-APP_HOME="`pwd -P`"
-cd "$SAVED" >/dev/null
-
-APP_NAME="Gradle"
-APP_BASE_NAME=`basename "$0"`
-
-# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-DEFAULT_JVM_OPTS=""
-
-# Use the maximum available, or set MAX_FD != -1 to use that value.
-MAX_FD="maximum"
-
-warn () {
- echo "$*"
-}
-
-die () {
- echo
- echo "$*"
- echo
- exit 1
-}
-
-# OS specific support (must be 'true' or 'false').
-cygwin=false
-msys=false
-darwin=false
-nonstop=false
-case "`uname`" in
- CYGWIN* )
- cygwin=true
- ;;
- Darwin* )
- darwin=true
- ;;
- MINGW* )
- msys=true
- ;;
- NONSTOP* )
- nonstop=true
- ;;
-esac
-
-CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
-
-# Determine the Java command to use to start the JVM.
-if [ -n "$JAVA_HOME" ] ; then
- if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
- # IBM's JDK on AIX uses strange locations for the executables
- JAVACMD="$JAVA_HOME/jre/sh/java"
- else
- JAVACMD="$JAVA_HOME/bin/java"
- fi
- if [ ! -x "$JAVACMD" ] ; then
- die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
-
-Please set the JAVA_HOME variable in your environment to match the
-location of your Java installation."
- fi
-else
- JAVACMD="java"
- which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-
-Please set the JAVA_HOME variable in your environment to match the
-location of your Java installation."
-fi
-
-# Increase the maximum file descriptors if we can.
-if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
- MAX_FD_LIMIT=`ulimit -H -n`
- if [ $? -eq 0 ] ; then
- if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
- MAX_FD="$MAX_FD_LIMIT"
- fi
- ulimit -n $MAX_FD
- if [ $? -ne 0 ] ; then
- warn "Could not set maximum file descriptor limit: $MAX_FD"
- fi
- else
- warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
- fi
-fi
-
-# For Darwin, add options to specify how the application appears in the dock
-if $darwin; then
- GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
-fi
-
-# For Cygwin, switch paths to Windows format before running java
-if $cygwin ; then
- APP_HOME=`cygpath --path --mixed "$APP_HOME"`
- CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
- JAVACMD=`cygpath --unix "$JAVACMD"`
-
- # We build the pattern for arguments to be converted via cygpath
- ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
- SEP=""
- for dir in $ROOTDIRSRAW ; do
- ROOTDIRS="$ROOTDIRS$SEP$dir"
- SEP="|"
- done
- OURCYGPATTERN="(^($ROOTDIRS))"
- # Add a user-defined pattern to the cygpath arguments
- if [ "$GRADLE_CYGPATTERN" != "" ] ; then
- OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
- fi
- # Now convert the arguments - kludge to limit ourselves to /bin/sh
- i=0
- for arg in "$@" ; do
- CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
- CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
-
- if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
- eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
- else
- eval `echo args$i`="\"$arg\""
- fi
- i=$((i+1))
- done
- case $i in
- (0) set -- ;;
- (1) set -- "$args0" ;;
- (2) set -- "$args0" "$args1" ;;
- (3) set -- "$args0" "$args1" "$args2" ;;
- (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
- (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
- (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
- (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
- (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
- (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
- esac
-fi
-
-# Escape application args
-save () {
- for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
- echo " "
-}
-APP_ARGS=$(save "$@")
-
-# Collect all arguments for the java command, following the shell quoting and substitution rules
-eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
-
-# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
-if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
- cd "$(dirname "$0")"
-fi
-
-exec "$JAVACMD" "$@"
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/complete/contract-rest-client/gradlew.bat b/docs/src/test/bats/fixtures/gs-contract-rest/complete/contract-rest-client/gradlew.bat
deleted file mode 100644
index f9553162..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/complete/contract-rest-client/gradlew.bat
+++ /dev/null
@@ -1,84 +0,0 @@
-@if "%DEBUG%" == "" @echo off
-@rem ##########################################################################
-@rem
-@rem Gradle startup script for Windows
-@rem
-@rem ##########################################################################
-
-@rem Set local scope for the variables with windows NT shell
-if "%OS%"=="Windows_NT" setlocal
-
-set DIRNAME=%~dp0
-if "%DIRNAME%" == "" set DIRNAME=.
-set APP_BASE_NAME=%~n0
-set APP_HOME=%DIRNAME%
-
-@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-set DEFAULT_JVM_OPTS=
-
-@rem Find java.exe
-if defined JAVA_HOME goto findJavaFromJavaHome
-
-set JAVA_EXE=java.exe
-%JAVA_EXE% -version >NUL 2>&1
-if "%ERRORLEVEL%" == "0" goto init
-
-echo.
-echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:findJavaFromJavaHome
-set JAVA_HOME=%JAVA_HOME:"=%
-set JAVA_EXE=%JAVA_HOME%/bin/java.exe
-
-if exist "%JAVA_EXE%" goto init
-
-echo.
-echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:init
-@rem Get command-line arguments, handling Windows variants
-
-if not "%OS%" == "Windows_NT" goto win9xME_args
-
-:win9xME_args
-@rem Slurp the command line arguments.
-set CMD_LINE_ARGS=
-set _SKIP=2
-
-:win9xME_args_slurp
-if "x%~1" == "x" goto execute
-
-set CMD_LINE_ARGS=%*
-
-:execute
-@rem Setup the command line
-
-set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
-
-@rem Execute Gradle
-"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
-
-:end
-@rem End local scope for the variables with windows NT shell
-if "%ERRORLEVEL%"=="0" goto mainEnd
-
-:fail
-rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
-rem the _cmd.exe /c_ return code!
-if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
-exit /b 1
-
-:mainEnd
-if "%OS%"=="Windows_NT" endlocal
-
-:omega
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/complete/contract-rest-client/pom.xml b/docs/src/test/bats/fixtures/gs-contract-rest/complete/contract-rest-client/pom.xml
deleted file mode 100644
index 79d4c2c1..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/complete/contract-rest-client/pom.xml
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
- 4.0.0
-
- com.example
- contract-rest-client
- 0.0.1-SNAPSHOT
- jar
-
-
- org.springframework.boot
- spring-boot-starter-parent
- 2.2.0.RC1
-
-
-
-
- UTF-8
- 1.8
-
-
-
-
- org.springframework.boot
- spring-boot-starter-web
-
-
-
- org.springframework.boot
- spring-boot-starter-test
- test
-
-
- org.springframework.cloud
- spring-cloud-starter-contract-stub-runner
- test
-
-
-
-
-
-
-
- org.springframework.cloud
- spring-cloud-dependencies
- Finchley.SR2
- pom
- import
-
-
-
-
-
-
-
- org.springframework.boot
- spring-boot-maven-plugin
-
-
-
-
-
-
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/complete/contract-rest-client/src/main/java/hello/ContractRestClientApplication.java b/docs/src/test/bats/fixtures/gs-contract-rest/complete/contract-rest-client/src/main/java/hello/ContractRestClientApplication.java
deleted file mode 100644
index 2ae34d72..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/complete/contract-rest-client/src/main/java/hello/ContractRestClientApplication.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package hello;
-
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.boot.web.client.RestTemplateBuilder;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-import org.springframework.web.client.RestTemplate;
-
-@SpringBootApplication
-public class ContractRestClientApplication {
-
- public static void main(String[] args) {
- SpringApplication.run(ContractRestClientApplication.class, args);
- }
-}
-
-@RestController
-class MessageRestController {
-
- private final RestTemplate restTemplate;
-
- MessageRestController(RestTemplateBuilder restTemplateBuilder) {
- this.restTemplate = restTemplateBuilder.build();
- }
-
- @RequestMapping("/message/{personId}")
- String getMessage(@PathVariable("personId") Long personId) {
- Person person = this.restTemplate.getForObject("http://localhost:8000/person/{personId}", Person.class, personId);
- return "Hello " + person.getName();
- }
-
-}
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/complete/contract-rest-client/src/main/java/hello/Person.java b/docs/src/test/bats/fixtures/gs-contract-rest/complete/contract-rest-client/src/main/java/hello/Person.java
deleted file mode 100644
index 14225f9c..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/complete/contract-rest-client/src/main/java/hello/Person.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package hello;
-
-class Person {
-
- public Person() {
- }
-
- public Person(Long id, String name, String surname) {
- this.id = id;
- this.name = name;
- this.surname = surname;
- }
-
- private Long id;
-
- private String name;
-
- private String surname;
-
- public Long getId() {
- return id;
- }
-
- public void setId(Long id) {
- this.id = id;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public String getSurname() {
- return surname;
- }
-
- public void setSurname(String surname) {
- this.surname = surname;
- }
-
-}
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/complete/contract-rest-client/src/main/resources/application.properties b/docs/src/test/bats/fixtures/gs-contract-rest/complete/contract-rest-client/src/main/resources/application.properties
deleted file mode 100644
index af7da77e..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/complete/contract-rest-client/src/main/resources/application.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-spring.application.name=contract-rest-client
-
-server.port=9000
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/complete/contract-rest-client/src/test/java/hello/ContractRestClientApplicationTest.java b/docs/src/test/bats/fixtures/gs-contract-rest/complete/contract-rest-client/src/test/java/hello/ContractRestClientApplicationTest.java
deleted file mode 100644
index 831b53df..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/complete/contract-rest-client/src/test/java/hello/ContractRestClientApplicationTest.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package hello;
-
-import org.assertj.core.api.BDDAssertions;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.cloud.contract.stubrunner.junit.StubRunnerRule;
-import org.springframework.cloud.contract.stubrunner.spring.StubRunnerProperties;
-import org.springframework.http.ResponseEntity;
-import org.springframework.test.context.junit4.SpringRunner;
-import org.springframework.web.client.RestTemplate;
-
-@RunWith(SpringRunner.class)
-@SpringBootTest
-public class ContractRestClientApplicationTest {
-
- @Rule
- public StubRunnerRule stubRunnerRule = new StubRunnerRule()
- .downloadStub("com.example", "contract-rest-service", "0.0.1-SNAPSHOT", "stubs")
- .withPort(8100)
- .stubsMode(StubRunnerProperties.StubsMode.LOCAL);
-
- @Test
- public void get_person_from_service_contract() {
- // given:
- RestTemplate restTemplate = new RestTemplate();
-
- // when:
- ResponseEntity personResponseEntity = restTemplate.getForEntity("http://localhost:8100/person/1", Person.class);
-
- // then:
- BDDAssertions.then(personResponseEntity.getStatusCodeValue()).isEqualTo(200);
- BDDAssertions.then(personResponseEntity.getBody().getId()).isEqualTo(1l);
- BDDAssertions.then(personResponseEntity.getBody().getName()).isEqualTo("foo");
- BDDAssertions.then(personResponseEntity.getBody().getSurname()).isEqualTo("bee");
-
- }
-}
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/complete/contract-rest-service/build.gradle b/docs/src/test/bats/fixtures/gs-contract-rest/complete/contract-rest-service/build.gradle
deleted file mode 100644
index ab4228bb..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/complete/contract-rest-service/build.gradle
+++ /dev/null
@@ -1,50 +0,0 @@
-buildscript {
- ext {
- springBootVersion = '2.1.4.RELEASE'
- verifierVersion = '2.0.2.RELEASE'
- }
- repositories { mavenCentral() }
- dependencies {
- classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
- classpath "org.springframework.cloud:spring-cloud-contract-gradle-plugin:${verifierVersion}"
- }
-}
-
-apply plugin: 'groovy'
-apply plugin: 'java'
-apply plugin: 'eclipse'
-apply plugin: 'idea'
-apply plugin: 'maven'
-apply plugin: 'org.springframework.boot'
-apply plugin: 'io.spring.dependency-management'
-apply plugin: 'spring-cloud-contract'
-
-
-group = 'com.example'
-version = '0.0.1-SNAPSHOT'
-bootJar {
- baseName = 'contract-rest-service'
-}
-sourceCompatibility = 1.8
-targetCompatibility = 1.8
-
-repositories { mavenCentral() }
-
-dependencies {
- compile('org.springframework.boot:spring-boot-starter-web')
- testCompile('org.springframework.boot:spring-boot-starter-test')
- testCompile('org.springframework.cloud:spring-cloud-starter-contract-verifier')
-}
-
-dependencyManagement {
- imports {
- mavenBom "org.springframework.cloud:spring-cloud-dependencies:Finchley.SR2"
- }
-}
-
-contracts {
- packageWithBaseClasses = 'hello'
- baseClassMappings {
- baseClassMapping(".*hello.*", "hello.BaseClass")
- }
-}
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/complete/contract-rest-service/gradle/wrapper/gradle-wrapper.jar b/docs/src/test/bats/fixtures/gs-contract-rest/complete/contract-rest-service/gradle/wrapper/gradle-wrapper.jar
deleted file mode 100644
index 6b6ea3ab..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/complete/contract-rest-service/gradle/wrapper/gradle-wrapper.jar and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/complete/contract-rest-service/gradle/wrapper/gradle-wrapper.properties b/docs/src/test/bats/fixtures/gs-contract-rest/complete/contract-rest-service/gradle/wrapper/gradle-wrapper.properties
deleted file mode 100644
index ea720f98..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/complete/contract-rest-service/gradle/wrapper/gradle-wrapper.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-distributionBase=GRADLE_USER_HOME
-distributionPath=wrapper/dists
-zipStoreBase=GRADLE_USER_HOME
-zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-bin.zip
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/complete/contract-rest-service/gradlew b/docs/src/test/bats/fixtures/gs-contract-rest/complete/contract-rest-service/gradlew
deleted file mode 100755
index cccdd3d5..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/complete/contract-rest-service/gradlew
+++ /dev/null
@@ -1,172 +0,0 @@
-#!/usr/bin/env sh
-
-##############################################################################
-##
-## Gradle start up script for UN*X
-##
-##############################################################################
-
-# Attempt to set APP_HOME
-# Resolve links: $0 may be a link
-PRG="$0"
-# Need this for relative symlinks.
-while [ -h "$PRG" ] ; do
- ls=`ls -ld "$PRG"`
- link=`expr "$ls" : '.*-> \(.*\)$'`
- if expr "$link" : '/.*' > /dev/null; then
- PRG="$link"
- else
- PRG=`dirname "$PRG"`"/$link"
- fi
-done
-SAVED="`pwd`"
-cd "`dirname \"$PRG\"`/" >/dev/null
-APP_HOME="`pwd -P`"
-cd "$SAVED" >/dev/null
-
-APP_NAME="Gradle"
-APP_BASE_NAME=`basename "$0"`
-
-# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-DEFAULT_JVM_OPTS=""
-
-# Use the maximum available, or set MAX_FD != -1 to use that value.
-MAX_FD="maximum"
-
-warn () {
- echo "$*"
-}
-
-die () {
- echo
- echo "$*"
- echo
- exit 1
-}
-
-# OS specific support (must be 'true' or 'false').
-cygwin=false
-msys=false
-darwin=false
-nonstop=false
-case "`uname`" in
- CYGWIN* )
- cygwin=true
- ;;
- Darwin* )
- darwin=true
- ;;
- MINGW* )
- msys=true
- ;;
- NONSTOP* )
- nonstop=true
- ;;
-esac
-
-CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
-
-# Determine the Java command to use to start the JVM.
-if [ -n "$JAVA_HOME" ] ; then
- if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
- # IBM's JDK on AIX uses strange locations for the executables
- JAVACMD="$JAVA_HOME/jre/sh/java"
- else
- JAVACMD="$JAVA_HOME/bin/java"
- fi
- if [ ! -x "$JAVACMD" ] ; then
- die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
-
-Please set the JAVA_HOME variable in your environment to match the
-location of your Java installation."
- fi
-else
- JAVACMD="java"
- which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-
-Please set the JAVA_HOME variable in your environment to match the
-location of your Java installation."
-fi
-
-# Increase the maximum file descriptors if we can.
-if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
- MAX_FD_LIMIT=`ulimit -H -n`
- if [ $? -eq 0 ] ; then
- if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
- MAX_FD="$MAX_FD_LIMIT"
- fi
- ulimit -n $MAX_FD
- if [ $? -ne 0 ] ; then
- warn "Could not set maximum file descriptor limit: $MAX_FD"
- fi
- else
- warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
- fi
-fi
-
-# For Darwin, add options to specify how the application appears in the dock
-if $darwin; then
- GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
-fi
-
-# For Cygwin, switch paths to Windows format before running java
-if $cygwin ; then
- APP_HOME=`cygpath --path --mixed "$APP_HOME"`
- CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
- JAVACMD=`cygpath --unix "$JAVACMD"`
-
- # We build the pattern for arguments to be converted via cygpath
- ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
- SEP=""
- for dir in $ROOTDIRSRAW ; do
- ROOTDIRS="$ROOTDIRS$SEP$dir"
- SEP="|"
- done
- OURCYGPATTERN="(^($ROOTDIRS))"
- # Add a user-defined pattern to the cygpath arguments
- if [ "$GRADLE_CYGPATTERN" != "" ] ; then
- OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
- fi
- # Now convert the arguments - kludge to limit ourselves to /bin/sh
- i=0
- for arg in "$@" ; do
- CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
- CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
-
- if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
- eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
- else
- eval `echo args$i`="\"$arg\""
- fi
- i=$((i+1))
- done
- case $i in
- (0) set -- ;;
- (1) set -- "$args0" ;;
- (2) set -- "$args0" "$args1" ;;
- (3) set -- "$args0" "$args1" "$args2" ;;
- (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
- (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
- (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
- (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
- (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
- (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
- esac
-fi
-
-# Escape application args
-save () {
- for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
- echo " "
-}
-APP_ARGS=$(save "$@")
-
-# Collect all arguments for the java command, following the shell quoting and substitution rules
-eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
-
-# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
-if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
- cd "$(dirname "$0")"
-fi
-
-exec "$JAVACMD" "$@"
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/complete/contract-rest-service/gradlew.bat b/docs/src/test/bats/fixtures/gs-contract-rest/complete/contract-rest-service/gradlew.bat
deleted file mode 100644
index f9553162..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/complete/contract-rest-service/gradlew.bat
+++ /dev/null
@@ -1,84 +0,0 @@
-@if "%DEBUG%" == "" @echo off
-@rem ##########################################################################
-@rem
-@rem Gradle startup script for Windows
-@rem
-@rem ##########################################################################
-
-@rem Set local scope for the variables with windows NT shell
-if "%OS%"=="Windows_NT" setlocal
-
-set DIRNAME=%~dp0
-if "%DIRNAME%" == "" set DIRNAME=.
-set APP_BASE_NAME=%~n0
-set APP_HOME=%DIRNAME%
-
-@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-set DEFAULT_JVM_OPTS=
-
-@rem Find java.exe
-if defined JAVA_HOME goto findJavaFromJavaHome
-
-set JAVA_EXE=java.exe
-%JAVA_EXE% -version >NUL 2>&1
-if "%ERRORLEVEL%" == "0" goto init
-
-echo.
-echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:findJavaFromJavaHome
-set JAVA_HOME=%JAVA_HOME:"=%
-set JAVA_EXE=%JAVA_HOME%/bin/java.exe
-
-if exist "%JAVA_EXE%" goto init
-
-echo.
-echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:init
-@rem Get command-line arguments, handling Windows variants
-
-if not "%OS%" == "Windows_NT" goto win9xME_args
-
-:win9xME_args
-@rem Slurp the command line arguments.
-set CMD_LINE_ARGS=
-set _SKIP=2
-
-:win9xME_args_slurp
-if "x%~1" == "x" goto execute
-
-set CMD_LINE_ARGS=%*
-
-:execute
-@rem Setup the command line
-
-set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
-
-@rem Execute Gradle
-"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
-
-:end
-@rem End local scope for the variables with windows NT shell
-if "%ERRORLEVEL%"=="0" goto mainEnd
-
-:fail
-rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
-rem the _cmd.exe /c_ return code!
-if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
-exit /b 1
-
-:mainEnd
-if "%OS%"=="Windows_NT" endlocal
-
-:omega
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/complete/contract-rest-service/pom.xml b/docs/src/test/bats/fixtures/gs-contract-rest/complete/contract-rest-service/pom.xml
deleted file mode 100644
index fa0368ff..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/complete/contract-rest-service/pom.xml
+++ /dev/null
@@ -1,77 +0,0 @@
-
-
- 4.0.0
-
- com.example
- contract-rest-service
- 0.0.1-SNAPSHOT
- jar
-
-
- org.springframework.boot
- spring-boot-starter-parent
- 2.2.0.RC1
-
-
-
-
- UTF-8
- 1.8
- Hoxton.BUILD-SNAPSHOT
- 2.2.0.BUILD-SNAPSHOT
-
-
-
-
- org.springframework.boot
- spring-boot-starter-web
-
-
-
- org.springframework.cloud
- spring-cloud-starter-contract-verifier
- test
-
-
- org.springframework.boot
- spring-boot-starter-test
- test
-
-
-
-
-
-
- org.springframework.cloud
- spring-cloud-dependencies
- ${spring-cloud.version}
- pom
- import
-
-
-
-
-
-
-
- org.springframework.boot
- spring-boot-maven-plugin
-
-
-
- org.springframework.cloud
- spring-cloud-contract-maven-plugin
- ${spring-cloud-contract.version}
- true
-
- hello.BaseClass
-
-
-
-
-
-
-
-
-
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/complete/contract-rest-service/src/main/java/hello/ContractRestServiceApplication.java b/docs/src/test/bats/fixtures/gs-contract-rest/complete/contract-rest-service/src/main/java/hello/ContractRestServiceApplication.java
deleted file mode 100644
index 081ec994..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/complete/contract-rest-service/src/main/java/hello/ContractRestServiceApplication.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package hello;
-
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-
-@SpringBootApplication
-public class ContractRestServiceApplication {
-
- public static void main(String[] args) {
- SpringApplication.run(ContractRestServiceApplication.class, args);
- }
-}
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/complete/contract-rest-service/src/main/java/hello/Person.java b/docs/src/test/bats/fixtures/gs-contract-rest/complete/contract-rest-service/src/main/java/hello/Person.java
deleted file mode 100644
index 988259b9..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/complete/contract-rest-service/src/main/java/hello/Person.java
+++ /dev/null
@@ -1,40 +0,0 @@
-package hello;
-
-class Person {
-
- Person(Long id, String name, String surname) {
- this.id = id;
- this.name = name;
- this.surname = surname;
- }
-
- private Long id;
-
- private String name;
-
- private String surname;
-
- public Long getId() {
- return id;
- }
-
- public void setId(Long id) {
- this.id = id;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public String getSurname() {
- return surname;
- }
-
- public void setSurname(String surname) {
- this.surname = surname;
- }
-}
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/complete/contract-rest-service/src/main/java/hello/PersonRestController.java b/docs/src/test/bats/fixtures/gs-contract-rest/complete/contract-rest-service/src/main/java/hello/PersonRestController.java
deleted file mode 100644
index 7e13377a..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/complete/contract-rest-service/src/main/java/hello/PersonRestController.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package hello;
-
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RestController;
-
-@RestController
-class PersonRestController {
-
- private final PersonService personService;
-
- public PersonRestController(PersonService personService) {
- this.personService = personService;
- }
-
- @GetMapping("/person/{id}")
- public Person findPersonById(@PathVariable("id") Long id) {
- return personService.findPersonById(id);
- }
-}
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/complete/contract-rest-service/src/main/java/hello/PersonService.java b/docs/src/test/bats/fixtures/gs-contract-rest/complete/contract-rest-service/src/main/java/hello/PersonService.java
deleted file mode 100644
index fa70645f..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/complete/contract-rest-service/src/main/java/hello/PersonService.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package hello;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.springframework.stereotype.Service;
-
-@Service
-class PersonService {
-
- private final Map personMap;
-
- public PersonService() {
- personMap = new HashMap<>();
- personMap.put(1L, new Person(1L, "Richard", "Gere"));
- personMap.put(2L, new Person(2L, "Emma", "Choplin"));
- personMap.put(3L, new Person(3L, "Anna", "Carolina"));
- }
-
- Person findPersonById(Long id) {
- return personMap.get(id);
- }
-}
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/complete/contract-rest-service/src/main/resources/application.properties b/docs/src/test/bats/fixtures/gs-contract-rest/complete/contract-rest-service/src/main/resources/application.properties
deleted file mode 100644
index 5ee314c7..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/complete/contract-rest-service/src/main/resources/application.properties
+++ /dev/null
@@ -1 +0,0 @@
-server.port=8000
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/complete/contract-rest-service/src/test/java/hello/BaseClass.java b/docs/src/test/bats/fixtures/gs-contract-rest/complete/contract-rest-service/src/test/java/hello/BaseClass.java
deleted file mode 100644
index 0331aa78..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/complete/contract-rest-service/src/test/java/hello/BaseClass.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package hello;
-
-import org.junit.Before;
-import org.junit.runner.RunWith;
-import org.mockito.Mockito;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.boot.test.mock.mockito.MockBean;
-import org.springframework.test.context.junit4.SpringRunner;
-
-import io.restassured.module.mockmvc.RestAssuredMockMvc;
-
-@RunWith(SpringRunner.class)
-@SpringBootTest(classes = ContractRestServiceApplication.class)
-public abstract class BaseClass {
-
- @Autowired PersonRestController personRestController;
-
- @MockBean PersonService personService;
-
- @Before public void setup() {
- RestAssuredMockMvc.standaloneSetup(personRestController);
-
- Mockito.when(personService.findPersonById(1L))
- .thenReturn(new Person(1L, "foo", "bee"));
- }
-
-}
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/complete/contract-rest-service/src/test/resources/contracts/hello/find_person_by_id.groovy b/docs/src/test/bats/fixtures/gs-contract-rest/complete/contract-rest-service/src/test/resources/contracts/hello/find_person_by_id.groovy
deleted file mode 100644
index fee99aad..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/complete/contract-rest-service/src/test/resources/contracts/hello/find_person_by_id.groovy
+++ /dev/null
@@ -1,22 +0,0 @@
-import org.springframework.cloud.contract.spec.Contract
-
-Contract.make {
- description "should return person by id=1"
-
- request {
- url "/person/1"
- method GET()
- }
-
- response {
- status OK()
- headers {
- contentType applicationJson()
- }
- body (
- id: 1,
- name: "foo",
- surname: "bee"
- )
- }
-}
\ No newline at end of file
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/complete/gradle/wrapper/gradle-wrapper.jar b/docs/src/test/bats/fixtures/gs-contract-rest/complete/gradle/wrapper/gradle-wrapper.jar
deleted file mode 100644
index 877f7c1f..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/complete/gradle/wrapper/gradle-wrapper.jar and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/complete/gradle/wrapper/gradle-wrapper.properties b/docs/src/test/bats/fixtures/gs-contract-rest/complete/gradle/wrapper/gradle-wrapper.properties
deleted file mode 100644
index ea55541d..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/complete/gradle/wrapper/gradle-wrapper.properties
+++ /dev/null
@@ -1,6 +0,0 @@
-#Wed Nov 15 10:48:25 CET 2017
-distributionBase=GRADLE_USER_HOME
-distributionPath=wrapper/dists
-zipStoreBase=GRADLE_USER_HOME
-zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-4.3.1-bin.zip
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/complete/gradlew b/docs/src/test/bats/fixtures/gs-contract-rest/complete/gradlew
deleted file mode 100755
index 9d82f789..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/complete/gradlew
+++ /dev/null
@@ -1,160 +0,0 @@
-#!/usr/bin/env bash
-
-##############################################################################
-##
-## Gradle start up script for UN*X
-##
-##############################################################################
-
-# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-DEFAULT_JVM_OPTS=""
-
-APP_NAME="Gradle"
-APP_BASE_NAME=`basename "$0"`
-
-# Use the maximum available, or set MAX_FD != -1 to use that value.
-MAX_FD="maximum"
-
-warn ( ) {
- echo "$*"
-}
-
-die ( ) {
- echo
- echo "$*"
- echo
- exit 1
-}
-
-# OS specific support (must be 'true' or 'false').
-cygwin=false
-msys=false
-darwin=false
-case "`uname`" in
- CYGWIN* )
- cygwin=true
- ;;
- Darwin* )
- darwin=true
- ;;
- MINGW* )
- msys=true
- ;;
-esac
-
-# Attempt to set APP_HOME
-# Resolve links: $0 may be a link
-PRG="$0"
-# Need this for relative symlinks.
-while [ -h "$PRG" ] ; do
- ls=`ls -ld "$PRG"`
- link=`expr "$ls" : '.*-> \(.*\)$'`
- if expr "$link" : '/.*' > /dev/null; then
- PRG="$link"
- else
- PRG=`dirname "$PRG"`"/$link"
- fi
-done
-SAVED="`pwd`"
-cd "`dirname \"$PRG\"`/" >/dev/null
-APP_HOME="`pwd -P`"
-cd "$SAVED" >/dev/null
-
-CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
-
-# Determine the Java command to use to start the JVM.
-if [ -n "$JAVA_HOME" ] ; then
- if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
- # IBM's JDK on AIX uses strange locations for the executables
- JAVACMD="$JAVA_HOME/jre/sh/java"
- else
- JAVACMD="$JAVA_HOME/bin/java"
- fi
- if [ ! -x "$JAVACMD" ] ; then
- die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
-
-Please set the JAVA_HOME variable in your environment to match the
-location of your Java installation."
- fi
-else
- JAVACMD="java"
- which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-
-Please set the JAVA_HOME variable in your environment to match the
-location of your Java installation."
-fi
-
-# Increase the maximum file descriptors if we can.
-if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
- MAX_FD_LIMIT=`ulimit -H -n`
- if [ $? -eq 0 ] ; then
- if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
- MAX_FD="$MAX_FD_LIMIT"
- fi
- ulimit -n $MAX_FD
- if [ $? -ne 0 ] ; then
- warn "Could not set maximum file descriptor limit: $MAX_FD"
- fi
- else
- warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
- fi
-fi
-
-# For Darwin, add options to specify how the application appears in the dock
-if $darwin; then
- GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
-fi
-
-# For Cygwin, switch paths to Windows format before running java
-if $cygwin ; then
- APP_HOME=`cygpath --path --mixed "$APP_HOME"`
- CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
- JAVACMD=`cygpath --unix "$JAVACMD"`
-
- # We build the pattern for arguments to be converted via cygpath
- ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
- SEP=""
- for dir in $ROOTDIRSRAW ; do
- ROOTDIRS="$ROOTDIRS$SEP$dir"
- SEP="|"
- done
- OURCYGPATTERN="(^($ROOTDIRS))"
- # Add a user-defined pattern to the cygpath arguments
- if [ "$GRADLE_CYGPATTERN" != "" ] ; then
- OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
- fi
- # Now convert the arguments - kludge to limit ourselves to /bin/sh
- i=0
- for arg in "$@" ; do
- CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
- CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
-
- if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
- eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
- else
- eval `echo args$i`="\"$arg\""
- fi
- i=$((i+1))
- done
- case $i in
- (0) set -- ;;
- (1) set -- "$args0" ;;
- (2) set -- "$args0" "$args1" ;;
- (3) set -- "$args0" "$args1" "$args2" ;;
- (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
- (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
- (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
- (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
- (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
- (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
- esac
-fi
-
-# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
-function splitJvmOpts() {
- JVM_OPTS=("$@")
-}
-eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
-JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
-
-exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/complete/gradlew.bat b/docs/src/test/bats/fixtures/gs-contract-rest/complete/gradlew.bat
deleted file mode 100644
index 8a0b282a..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/complete/gradlew.bat
+++ /dev/null
@@ -1,90 +0,0 @@
-@if "%DEBUG%" == "" @echo off
-@rem ##########################################################################
-@rem
-@rem Gradle startup script for Windows
-@rem
-@rem ##########################################################################
-
-@rem Set local scope for the variables with windows NT shell
-if "%OS%"=="Windows_NT" setlocal
-
-@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-set DEFAULT_JVM_OPTS=
-
-set DIRNAME=%~dp0
-if "%DIRNAME%" == "" set DIRNAME=.
-set APP_BASE_NAME=%~n0
-set APP_HOME=%DIRNAME%
-
-@rem Find java.exe
-if defined JAVA_HOME goto findJavaFromJavaHome
-
-set JAVA_EXE=java.exe
-%JAVA_EXE% -version >NUL 2>&1
-if "%ERRORLEVEL%" == "0" goto init
-
-echo.
-echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:findJavaFromJavaHome
-set JAVA_HOME=%JAVA_HOME:"=%
-set JAVA_EXE=%JAVA_HOME%/bin/java.exe
-
-if exist "%JAVA_EXE%" goto init
-
-echo.
-echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:init
-@rem Get command-line arguments, handling Windowz variants
-
-if not "%OS%" == "Windows_NT" goto win9xME_args
-if "%@eval[2+2]" == "4" goto 4NT_args
-
-:win9xME_args
-@rem Slurp the command line arguments.
-set CMD_LINE_ARGS=
-set _SKIP=2
-
-:win9xME_args_slurp
-if "x%~1" == "x" goto execute
-
-set CMD_LINE_ARGS=%*
-goto execute
-
-:4NT_args
-@rem Get arguments from the 4NT Shell from JP Software
-set CMD_LINE_ARGS=%$
-
-:execute
-@rem Setup the command line
-
-set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
-
-@rem Execute Gradle
-"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
-
-:end
-@rem End local scope for the variables with windows NT shell
-if "%ERRORLEVEL%"=="0" goto mainEnd
-
-:fail
-rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
-rem the _cmd.exe /c_ return code!
-if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
-exit /b 1
-
-:mainEnd
-if "%OS%"=="Windows_NT" endlocal
-
-:omega
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/complete/mvnw b/docs/src/test/bats/fixtures/gs-contract-rest/complete/mvnw
deleted file mode 100755
index 02217b1e..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/complete/mvnw
+++ /dev/null
@@ -1,233 +0,0 @@
-#!/bin/sh
-# ----------------------------------------------------------------------------
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# https://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-# ----------------------------------------------------------------------------
-
-# ----------------------------------------------------------------------------
-# Maven2 Start Up Batch script
-#
-# Required ENV vars:
-# ------------------
-# JAVA_HOME - location of a JDK home dir
-#
-# Optional ENV vars
-# -----------------
-# M2_HOME - location of maven2's installed home dir
-# MAVEN_OPTS - parameters passed to the Java VM when running Maven
-# e.g. to debug Maven itself, use
-# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
-# MAVEN_SKIP_RC - flag to disable loading of mavenrc files
-# ----------------------------------------------------------------------------
-
-if [ -z "$MAVEN_SKIP_RC" ] ; then
-
- if [ -f /etc/mavenrc ] ; then
- . /etc/mavenrc
- fi
-
- if [ -f "$HOME/.mavenrc" ] ; then
- . "$HOME/.mavenrc"
- fi
-
-fi
-
-# OS specific support. $var _must_ be set to either true or false.
-cygwin=false;
-darwin=false;
-mingw=false
-case "`uname`" in
- CYGWIN*) cygwin=true ;;
- MINGW*) mingw=true;;
- Darwin*) darwin=true
- #
- # Look for the Apple JDKs first to preserve the existing behaviour, and then look
- # for the new JDKs provided by Oracle.
- #
- if [ -z "$JAVA_HOME" ] && [ -L /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK ] ; then
- #
- # Apple JDKs
- #
- export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home
- fi
-
- if [ -z "$JAVA_HOME" ] && [ -L /System/Library/Java/JavaVirtualMachines/CurrentJDK ] ; then
- #
- # Apple JDKs
- #
- export JAVA_HOME=/System/Library/Java/JavaVirtualMachines/CurrentJDK/Contents/Home
- fi
-
- if [ -z "$JAVA_HOME" ] && [ -L "/Library/Java/JavaVirtualMachines/CurrentJDK" ] ; then
- #
- # Oracle JDKs
- #
- export JAVA_HOME=/Library/Java/JavaVirtualMachines/CurrentJDK/Contents/Home
- fi
-
- if [ -z "$JAVA_HOME" ] && [ -x "/usr/libexec/java_home" ]; then
- #
- # Apple JDKs
- #
- export JAVA_HOME=`/usr/libexec/java_home`
- fi
- ;;
-esac
-
-if [ -z "$JAVA_HOME" ] ; then
- if [ -r /etc/gentoo-release ] ; then
- JAVA_HOME=`java-config --jre-home`
- fi
-fi
-
-if [ -z "$M2_HOME" ] ; then
- ## resolve links - $0 may be a link to maven's home
- PRG="$0"
-
- # need this for relative symlinks
- while [ -h "$PRG" ] ; do
- ls=`ls -ld "$PRG"`
- link=`expr "$ls" : '.*-> \(.*\)$'`
- if expr "$link" : '/.*' > /dev/null; then
- PRG="$link"
- else
- PRG="`dirname "$PRG"`/$link"
- fi
- done
-
- saveddir=`pwd`
-
- M2_HOME=`dirname "$PRG"`/..
-
- # make it fully qualified
- M2_HOME=`cd "$M2_HOME" && pwd`
-
- cd "$saveddir"
- # echo Using m2 at $M2_HOME
-fi
-
-# For Cygwin, ensure paths are in UNIX format before anything is touched
-if $cygwin ; then
- [ -n "$M2_HOME" ] &&
- M2_HOME=`cygpath --unix "$M2_HOME"`
- [ -n "$JAVA_HOME" ] &&
- JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
- [ -n "$CLASSPATH" ] &&
- CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
-fi
-
-# For Migwn, ensure paths are in UNIX format before anything is touched
-if $mingw ; then
- [ -n "$M2_HOME" ] &&
- M2_HOME="`(cd "$M2_HOME"; pwd)`"
- [ -n "$JAVA_HOME" ] &&
- JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
- # TODO classpath?
-fi
-
-if [ -z "$JAVA_HOME" ]; then
- javaExecutable="`which javac`"
- if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
- # readlink(1) is not available as standard on Solaris 10.
- readLink=`which readlink`
- if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
- if $darwin ; then
- javaHome="`dirname \"$javaExecutable\"`"
- javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
- else
- javaExecutable="`readlink -f \"$javaExecutable\"`"
- fi
- javaHome="`dirname \"$javaExecutable\"`"
- javaHome=`expr "$javaHome" : '\(.*\)/bin'`
- JAVA_HOME="$javaHome"
- export JAVA_HOME
- fi
- fi
-fi
-
-if [ -z "$JAVACMD" ] ; then
- if [ -n "$JAVA_HOME" ] ; then
- if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
- # IBM's JDK on AIX uses strange locations for the executables
- JAVACMD="$JAVA_HOME/jre/sh/java"
- else
- JAVACMD="$JAVA_HOME/bin/java"
- fi
- else
- JAVACMD="`which java`"
- fi
-fi
-
-if [ ! -x "$JAVACMD" ] ; then
- echo "Error: JAVA_HOME is not defined correctly." >&2
- echo " We cannot execute $JAVACMD" >&2
- exit 1
-fi
-
-if [ -z "$JAVA_HOME" ] ; then
- echo "Warning: JAVA_HOME environment variable is not set."
-fi
-
-CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
-
-# For Cygwin, switch paths to Windows format before running java
-if $cygwin; then
- [ -n "$M2_HOME" ] &&
- M2_HOME=`cygpath --path --windows "$M2_HOME"`
- [ -n "$JAVA_HOME" ] &&
- JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
- [ -n "$CLASSPATH" ] &&
- CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
-fi
-
-# traverses directory structure from process work directory to filesystem root
-# first directory with .mvn subdirectory is considered project base directory
-find_maven_basedir() {
- local basedir=$(pwd)
- local wdir=$(pwd)
- while [ "$wdir" != '/' ] ; do
- if [ -d "$wdir"/.mvn ] ; then
- basedir=$wdir
- break
- fi
- wdir=$(cd "$wdir/.."; pwd)
- done
- echo "${basedir}"
-}
-
-# concatenates all lines of a file
-concat_lines() {
- if [ -f "$1" ]; then
- echo "$(tr -s '\n' ' ' < "$1")"
- fi
-}
-
-export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-$(find_maven_basedir)}
-MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
-
-# Provide a "standardized" way to retrieve the CLI args that will
-# work with both Windows and non-Windows executions.
-MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@"
-export MAVEN_CMD_LINE_ARGS
-
-WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
-
-exec "$JAVACMD" \
- $MAVEN_OPTS \
- -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
- "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
- ${WRAPPER_LAUNCHER} "$@"
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/complete/mvnw.cmd b/docs/src/test/bats/fixtures/gs-contract-rest/complete/mvnw.cmd
deleted file mode 100755
index 4b98b78c..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/complete/mvnw.cmd
+++ /dev/null
@@ -1,145 +0,0 @@
-@REM ----------------------------------------------------------------------------
-@REM Licensed to the Apache Software Foundation (ASF) under one
-@REM or more contributor license agreements. See the NOTICE file
-@REM distributed with this work for additional information
-@REM regarding copyright ownership. The ASF licenses this file
-@REM to you under the Apache License, Version 2.0 (the
-@REM "License"); you may not use this file except in compliance
-@REM with the License. You may obtain a copy of the License at
-@REM
-@REM https://www.apache.org/licenses/LICENSE-2.0
-@REM
-@REM Unless required by applicable law or agreed to in writing,
-@REM software distributed under the License is distributed on an
-@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-@REM KIND, either express or implied. See the License for the
-@REM specific language governing permissions and limitations
-@REM under the License.
-@REM ----------------------------------------------------------------------------
-
-@REM ----------------------------------------------------------------------------
-@REM Maven2 Start Up Batch script
-@REM
-@REM Required ENV vars:
-@REM JAVA_HOME - location of a JDK home dir
-@REM
-@REM Optional ENV vars
-@REM M2_HOME - location of maven2's installed home dir
-@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
-@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending
-@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
-@REM e.g. to debug Maven itself, use
-@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
-@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
-@REM ----------------------------------------------------------------------------
-
-@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
-@echo off
-@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on'
-@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO%
-
-@REM set %HOME% to equivalent of $HOME
-if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
-
-@REM Execute a user defined script before this one
-if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
-@REM check for pre script, once with legacy .bat ending and once with .cmd ending
-if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
-if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
-:skipRcPre
-
-@setlocal
-
-set ERROR_CODE=0
-
-@REM To isolate internal variables from possible post scripts, we use another setlocal
-@setlocal
-
-@REM ==== START VALIDATION ====
-if not "%JAVA_HOME%" == "" goto OkJHome
-
-echo.
-echo Error: JAVA_HOME not found in your environment. >&2
-echo Please set the JAVA_HOME variable in your environment to match the >&2
-echo location of your Java installation. >&2
-echo.
-goto error
-
-:OkJHome
-if exist "%JAVA_HOME%\bin\java.exe" goto init
-
-echo.
-echo Error: JAVA_HOME is set to an invalid directory. >&2
-echo JAVA_HOME = "%JAVA_HOME%" >&2
-echo Please set the JAVA_HOME variable in your environment to match the >&2
-echo location of your Java installation. >&2
-echo.
-goto error
-
-@REM ==== END VALIDATION ====
-
-:init
-
-set MAVEN_CMD_LINE_ARGS=%*
-
-@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
-@REM Fallback to current working directory if not found.
-
-set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
-IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
-
-set EXEC_DIR=%CD%
-set WDIR=%EXEC_DIR%
-:findBaseDir
-IF EXIST "%WDIR%"\.mvn goto baseDirFound
-cd ..
-IF "%WDIR%"=="%CD%" goto baseDirNotFound
-set WDIR=%CD%
-goto findBaseDir
-
-:baseDirFound
-set MAVEN_PROJECTBASEDIR=%WDIR%
-cd "%EXEC_DIR%"
-goto endDetectBaseDir
-
-:baseDirNotFound
-set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
-cd "%EXEC_DIR%"
-
-:endDetectBaseDir
-
-IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
-
-@setlocal EnableExtensions EnableDelayedExpansion
-for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
-@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
-
-:endReadAdditionalConfig
-
-SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
-
-set WRAPPER_JAR="".\.mvn\wrapper\maven-wrapper.jar""
-set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
-
-%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CMD_LINE_ARGS%
-if ERRORLEVEL 1 goto error
-goto end
-
-:error
-set ERROR_CODE=1
-
-:end
-@endlocal & set ERROR_CODE=%ERROR_CODE%
-
-if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
-@REM check for post script, once with legacy .bat ending and once with .cmd ending
-if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
-if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
-:skipRcPost
-
-@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
-if "%MAVEN_BATCH_PAUSE%" == "on" pause
-
-if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
-
-exit /B %ERROR_CODE%
\ No newline at end of file
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/complete/pom.xml b/docs/src/test/bats/fixtures/gs-contract-rest/complete/pom.xml
deleted file mode 100644
index edeb2a15..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/complete/pom.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
- 4.0.0
-
- org.springframework
- gs-contract-rest
- 0.1.0
-
- pom
-
-
- contract-rest-service
- contract-rest-client
-
-
-
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/complete/settings.gradle b/docs/src/test/bats/fixtures/gs-contract-rest/complete/settings.gradle
deleted file mode 100644
index 1008e67c..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/complete/settings.gradle
+++ /dev/null
@@ -1,4 +0,0 @@
-rootProject.name = 'gs-contract-rest'
-
-include 'contract-rest-service'
-include 'contract-rest-client'
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/COMMIT_EDITMSG b/docs/src/test/bats/fixtures/gs-contract-rest/git/COMMIT_EDITMSG
deleted file mode 100644
index 9dfcf117..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/git/COMMIT_EDITMSG
+++ /dev/null
@@ -1 +0,0 @@
-Updated to latest
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/FETCH_HEAD b/docs/src/test/bats/fixtures/gs-contract-rest/git/FETCH_HEAD
deleted file mode 100644
index fe5aae60..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/git/FETCH_HEAD
+++ /dev/null
@@ -1 +0,0 @@
-1d776d21deba9bd58877220abd802e8794ddb6a3 branch 'master' of github.com:spring-guides/gs-contract-rest
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/HEAD b/docs/src/test/bats/fixtures/gs-contract-rest/git/HEAD
deleted file mode 100644
index cb089cd8..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/git/HEAD
+++ /dev/null
@@ -1 +0,0 @@
-ref: refs/heads/master
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/ORIG_HEAD b/docs/src/test/bats/fixtures/gs-contract-rest/git/ORIG_HEAD
deleted file mode 100644
index 5d3dda78..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/git/ORIG_HEAD
+++ /dev/null
@@ -1 +0,0 @@
-06e323583eeda1364779d80eef55110256411426
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/config b/docs/src/test/bats/fixtures/gs-contract-rest/git/config
deleted file mode 100644
index fe29604c..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/git/config
+++ /dev/null
@@ -1,11 +0,0 @@
-[core]
- repositoryformatversion = 0
- filemode = true
- bare = false
- logallrefupdates = true
-[remote "origin"]
- url = git@github.com:spring-guides/gs-contract-rest.git
- fetch = +refs/heads/*:refs/remotes/origin/*
-[branch "master"]
- remote = origin
- merge = refs/heads/master
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/description b/docs/src/test/bats/fixtures/gs-contract-rest/git/description
deleted file mode 100644
index 498b267a..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/git/description
+++ /dev/null
@@ -1 +0,0 @@
-Unnamed repository; edit this file 'description' to name the repository.
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/hooks/applypatch-msg.sample b/docs/src/test/bats/fixtures/gs-contract-rest/git/hooks/applypatch-msg.sample
deleted file mode 100755
index a5d7b84a..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/git/hooks/applypatch-msg.sample
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/bin/sh
-#
-# An example hook script to check the commit log message taken by
-# applypatch from an e-mail message.
-#
-# The hook should exit with non-zero status after issuing an
-# appropriate message if it wants to stop the commit. The hook is
-# allowed to edit the commit message file.
-#
-# To enable this hook, rename this file to "applypatch-msg".
-
-. git-sh-setup
-commitmsg="$(git rev-parse --git-path hooks/commit-msg)"
-test -x "$commitmsg" && exec "$commitmsg" ${1+"$@"}
-:
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/hooks/commit-msg.sample b/docs/src/test/bats/fixtures/gs-contract-rest/git/hooks/commit-msg.sample
deleted file mode 100755
index b58d1184..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/git/hooks/commit-msg.sample
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/bin/sh
-#
-# An example hook script to check the commit log message.
-# Called by "git commit" with one argument, the name of the file
-# that has the commit message. The hook should exit with non-zero
-# status after issuing an appropriate message if it wants to stop the
-# commit. The hook is allowed to edit the commit message file.
-#
-# To enable this hook, rename this file to "commit-msg".
-
-# Uncomment the below to add a Signed-off-by line to the message.
-# Doing this in a hook is a bad idea in general, but the prepare-commit-msg
-# hook is more suited to it.
-#
-# SOB=$(git var GIT_AUTHOR_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p')
-# grep -qs "^$SOB" "$1" || echo "$SOB" >> "$1"
-
-# This example catches duplicate Signed-off-by lines.
-
-test "" = "$(grep '^Signed-off-by: ' "$1" |
- sort | uniq -c | sed -e '/^[ ]*1[ ]/d')" || {
- echo >&2 Duplicate Signed-off-by lines.
- exit 1
-}
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/hooks/fsmonitor-watchman.sample b/docs/src/test/bats/fixtures/gs-contract-rest/git/hooks/fsmonitor-watchman.sample
deleted file mode 100755
index e673bb39..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/git/hooks/fsmonitor-watchman.sample
+++ /dev/null
@@ -1,114 +0,0 @@
-#!/usr/bin/perl
-
-use strict;
-use warnings;
-use IPC::Open2;
-
-# An example hook script to integrate Watchman
-# (https://facebook.github.io/watchman/) with git to speed up detecting
-# new and modified files.
-#
-# The hook is passed a version (currently 1) and a time in nanoseconds
-# formatted as a string and outputs to stdout all files that have been
-# modified since the given time. Paths must be relative to the root of
-# the working tree and separated by a single NUL.
-#
-# To enable this hook, rename this file to "query-watchman" and set
-# 'git config core.fsmonitor .git/hooks/query-watchman'
-#
-my ($version, $time) = @ARGV;
-
-# Check the hook interface version
-
-if ($version == 1) {
- # convert nanoseconds to seconds
- $time = int $time / 1000000000;
-} else {
- die "Unsupported query-fsmonitor hook version '$version'.\n" .
- "Falling back to scanning...\n";
-}
-
-my $git_work_tree;
-if ($^O =~ 'msys' || $^O =~ 'cygwin') {
- $git_work_tree = Win32::GetCwd();
- $git_work_tree =~ tr/\\/\//;
-} else {
- require Cwd;
- $git_work_tree = Cwd::cwd();
-}
-
-my $retry = 1;
-
-launch_watchman();
-
-sub launch_watchman {
-
- my $pid = open2(\*CHLD_OUT, \*CHLD_IN, 'watchman -j --no-pretty')
- or die "open2() failed: $!\n" .
- "Falling back to scanning...\n";
-
- # In the query expression below we're asking for names of files that
- # changed since $time but were not transient (ie created after
- # $time but no longer exist).
- #
- # To accomplish this, we're using the "since" generator to use the
- # recency index to select candidate nodes and "fields" to limit the
- # output to file names only. Then we're using the "expression" term to
- # further constrain the results.
- #
- # The category of transient files that we want to ignore will have a
- # creation clock (cclock) newer than $time_t value and will also not
- # currently exist.
-
- my $query = <<" END";
- ["query", "$git_work_tree", {
- "since": $time,
- "fields": ["name"],
- "expression": ["not", ["allof", ["since", $time, "cclock"], ["not", "exists"]]]
- }]
- END
-
- print CHLD_IN $query;
- close CHLD_IN;
- my $response = do {local $/; };
-
- die "Watchman: command returned no output.\n" .
- "Falling back to scanning...\n" if $response eq "";
- die "Watchman: command returned invalid output: $response\n" .
- "Falling back to scanning...\n" unless $response =~ /^\{/;
-
- my $json_pkg;
- eval {
- require JSON::XS;
- $json_pkg = "JSON::XS";
- 1;
- } or do {
- require JSON::PP;
- $json_pkg = "JSON::PP";
- };
-
- my $o = $json_pkg->new->utf8->decode($response);
-
- if ($retry > 0 and $o->{error} and $o->{error} =~ m/unable to resolve root .* directory (.*) is not watched/) {
- print STDERR "Adding '$git_work_tree' to watchman's watch list.\n";
- $retry--;
- qx/watchman watch "$git_work_tree"/;
- die "Failed to make watchman watch '$git_work_tree'.\n" .
- "Falling back to scanning...\n" if $? != 0;
-
- # Watchman will always return all files on the first query so
- # return the fast "everything is dirty" flag to git and do the
- # Watchman query just to get it over with now so we won't pay
- # the cost in git to look up each individual file.
- print "/\0";
- eval { launch_watchman() };
- exit 0;
- }
-
- die "Watchman: $o->{error}.\n" .
- "Falling back to scanning...\n" if $o->{error};
-
- binmode STDOUT, ":utf8";
- local $, = "\0";
- print @{$o->{files}};
-}
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/hooks/post-update.sample b/docs/src/test/bats/fixtures/gs-contract-rest/git/hooks/post-update.sample
deleted file mode 100755
index ec17ec19..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/git/hooks/post-update.sample
+++ /dev/null
@@ -1,8 +0,0 @@
-#!/bin/sh
-#
-# An example hook script to prepare a packed repository for use over
-# dumb transports.
-#
-# To enable this hook, rename this file to "post-update".
-
-exec git update-server-info
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/hooks/pre-applypatch.sample b/docs/src/test/bats/fixtures/gs-contract-rest/git/hooks/pre-applypatch.sample
deleted file mode 100755
index 4142082b..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/git/hooks/pre-applypatch.sample
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/bin/sh
-#
-# An example hook script to verify what is about to be committed
-# by applypatch from an e-mail message.
-#
-# The hook should exit with non-zero status after issuing an
-# appropriate message if it wants to stop the commit.
-#
-# To enable this hook, rename this file to "pre-applypatch".
-
-. git-sh-setup
-precommit="$(git rev-parse --git-path hooks/pre-commit)"
-test -x "$precommit" && exec "$precommit" ${1+"$@"}
-:
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/hooks/pre-commit.sample b/docs/src/test/bats/fixtures/gs-contract-rest/git/hooks/pre-commit.sample
deleted file mode 100755
index 68d62d54..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/git/hooks/pre-commit.sample
+++ /dev/null
@@ -1,49 +0,0 @@
-#!/bin/sh
-#
-# An example hook script to verify what is about to be committed.
-# Called by "git commit" with no arguments. The hook should
-# exit with non-zero status after issuing an appropriate message if
-# it wants to stop the commit.
-#
-# To enable this hook, rename this file to "pre-commit".
-
-if git rev-parse --verify HEAD >/dev/null 2>&1
-then
- against=HEAD
-else
- # Initial commit: diff against an empty tree object
- against=4b825dc642cb6eb9a060e54bf8d69288fbee4904
-fi
-
-# If you want to allow non-ASCII filenames set this variable to true.
-allownonascii=$(git config --bool hooks.allownonascii)
-
-# Redirect output to stderr.
-exec 1>&2
-
-# Cross platform projects tend to avoid non-ASCII filenames; prevent
-# them from being added to the repository. We exploit the fact that the
-# printable range starts at the space character and ends with tilde.
-if [ "$allownonascii" != "true" ] &&
- # Note that the use of brackets around a tr range is ok here, (it's
- # even required, for portability to Solaris 10's /usr/bin/tr), since
- # the square bracket bytes happen to fall in the designated range.
- test $(git diff --cached --name-only --diff-filter=A -z $against |
- LC_ALL=C tr -d '[ -~]\0' | wc -c) != 0
-then
- cat <<\EOF
-Error: Attempt to add a non-ASCII file name.
-
-This can cause problems if you want to work with people on other platforms.
-
-To be portable it is advisable to rename the file.
-
-If you know what you are doing you can disable this check using:
-
- git config hooks.allownonascii true
-EOF
- exit 1
-fi
-
-# If there are whitespace errors, print the offending file names and fail.
-exec git diff-index --check --cached $against --
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/hooks/pre-push.sample b/docs/src/test/bats/fixtures/gs-contract-rest/git/hooks/pre-push.sample
deleted file mode 100755
index 6187dbf4..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/git/hooks/pre-push.sample
+++ /dev/null
@@ -1,53 +0,0 @@
-#!/bin/sh
-
-# An example hook script to verify what is about to be pushed. Called by "git
-# push" after it has checked the remote status, but before anything has been
-# pushed. If this script exits with a non-zero status nothing will be pushed.
-#
-# This hook is called with the following parameters:
-#
-# $1 -- Name of the remote to which the push is being done
-# $2 -- URL to which the push is being done
-#
-# If pushing without using a named remote those arguments will be equal.
-#
-# Information about the commits which are being pushed is supplied as lines to
-# the standard input in the form:
-#
-#
-#
-# This sample shows how to prevent push of commits where the log message starts
-# with "WIP" (work in progress).
-
-remote="$1"
-url="$2"
-
-z40=0000000000000000000000000000000000000000
-
-while read local_ref local_sha remote_ref remote_sha
-do
- if [ "$local_sha" = $z40 ]
- then
- # Handle delete
- :
- else
- if [ "$remote_sha" = $z40 ]
- then
- # New branch, examine all commits
- range="$local_sha"
- else
- # Update to existing branch, examine new commits
- range="$remote_sha..$local_sha"
- fi
-
- # Check for WIP commit
- commit=`git rev-list -n 1 --grep '^WIP' "$range"`
- if [ -n "$commit" ]
- then
- echo >&2 "Found WIP commit in $local_ref, not pushing"
- exit 1
- fi
- fi
-done
-
-exit 0
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/hooks/pre-rebase.sample b/docs/src/test/bats/fixtures/gs-contract-rest/git/hooks/pre-rebase.sample
deleted file mode 100755
index 6cbef5c3..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/git/hooks/pre-rebase.sample
+++ /dev/null
@@ -1,169 +0,0 @@
-#!/bin/sh
-#
-# Copyright (c) 2006, 2008 Junio C Hamano
-#
-# The "pre-rebase" hook is run just before "git rebase" starts doing
-# its job, and can prevent the command from running by exiting with
-# non-zero status.
-#
-# The hook is called with the following parameters:
-#
-# $1 -- the upstream the series was forked from.
-# $2 -- the branch being rebased (or empty when rebasing the current branch).
-#
-# This sample shows how to prevent topic branches that are already
-# merged to 'next' branch from getting rebased, because allowing it
-# would result in rebasing already published history.
-
-publish=next
-basebranch="$1"
-if test "$#" = 2
-then
- topic="refs/heads/$2"
-else
- topic=`git symbolic-ref HEAD` ||
- exit 0 ;# we do not interrupt rebasing detached HEAD
-fi
-
-case "$topic" in
-refs/heads/??/*)
- ;;
-*)
- exit 0 ;# we do not interrupt others.
- ;;
-esac
-
-# Now we are dealing with a topic branch being rebased
-# on top of master. Is it OK to rebase it?
-
-# Does the topic really exist?
-git show-ref -q "$topic" || {
- echo >&2 "No such branch $topic"
- exit 1
-}
-
-# Is topic fully merged to master?
-not_in_master=`git rev-list --pretty=oneline ^master "$topic"`
-if test -z "$not_in_master"
-then
- echo >&2 "$topic is fully merged to master; better remove it."
- exit 1 ;# we could allow it, but there is no point.
-fi
-
-# Is topic ever merged to next? If so you should not be rebasing it.
-only_next_1=`git rev-list ^master "^$topic" ${publish} | sort`
-only_next_2=`git rev-list ^master ${publish} | sort`
-if test "$only_next_1" = "$only_next_2"
-then
- not_in_topic=`git rev-list "^$topic" master`
- if test -z "$not_in_topic"
- then
- echo >&2 "$topic is already up to date with master"
- exit 1 ;# we could allow it, but there is no point.
- else
- exit 0
- fi
-else
- not_in_next=`git rev-list --pretty=oneline ^${publish} "$topic"`
- /usr/bin/perl -e '
- my $topic = $ARGV[0];
- my $msg = "* $topic has commits already merged to public branch:\n";
- my (%not_in_next) = map {
- /^([0-9a-f]+) /;
- ($1 => 1);
- } split(/\n/, $ARGV[1]);
- for my $elem (map {
- /^([0-9a-f]+) (.*)$/;
- [$1 => $2];
- } split(/\n/, $ARGV[2])) {
- if (!exists $not_in_next{$elem->[0]}) {
- if ($msg) {
- print STDERR $msg;
- undef $msg;
- }
- print STDERR " $elem->[1]\n";
- }
- }
- ' "$topic" "$not_in_next" "$not_in_master"
- exit 1
-fi
-
-<<\DOC_END
-
-This sample hook safeguards topic branches that have been
-published from being rewound.
-
-The workflow assumed here is:
-
- * Once a topic branch forks from "master", "master" is never
- merged into it again (either directly or indirectly).
-
- * Once a topic branch is fully cooked and merged into "master",
- it is deleted. If you need to build on top of it to correct
- earlier mistakes, a new topic branch is created by forking at
- the tip of the "master". This is not strictly necessary, but
- it makes it easier to keep your history simple.
-
- * Whenever you need to test or publish your changes to topic
- branches, merge them into "next" branch.
-
-The script, being an example, hardcodes the publish branch name
-to be "next", but it is trivial to make it configurable via
-$GIT_DIR/config mechanism.
-
-With this workflow, you would want to know:
-
-(1) ... if a topic branch has ever been merged to "next". Young
- topic branches can have stupid mistakes you would rather
- clean up before publishing, and things that have not been
- merged into other branches can be easily rebased without
- affecting other people. But once it is published, you would
- not want to rewind it.
-
-(2) ... if a topic branch has been fully merged to "master".
- Then you can delete it. More importantly, you should not
- build on top of it -- other people may already want to
- change things related to the topic as patches against your
- "master", so if you need further changes, it is better to
- fork the topic (perhaps with the same name) afresh from the
- tip of "master".
-
-Let's look at this example:
-
- o---o---o---o---o---o---o---o---o---o "next"
- / / / /
- / a---a---b A / /
- / / / /
- / / c---c---c---c B /
- / / / \ /
- / / / b---b C \ /
- / / / / \ /
- ---o---o---o---o---o---o---o---o---o---o---o "master"
-
-
-A, B and C are topic branches.
-
- * A has one fix since it was merged up to "next".
-
- * B has finished. It has been fully merged up to "master" and "next",
- and is ready to be deleted.
-
- * C has not merged to "next" at all.
-
-We would want to allow C to be rebased, refuse A, and encourage
-B to be deleted.
-
-To compute (1):
-
- git rev-list ^master ^topic next
- git rev-list ^master next
-
- if these match, topic has not merged in next at all.
-
-To compute (2):
-
- git rev-list master..topic
-
- if this is empty, it is fully merged to "master".
-
-DOC_END
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/hooks/pre-receive.sample b/docs/src/test/bats/fixtures/gs-contract-rest/git/hooks/pre-receive.sample
deleted file mode 100755
index a1fd29ec..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/git/hooks/pre-receive.sample
+++ /dev/null
@@ -1,24 +0,0 @@
-#!/bin/sh
-#
-# An example hook script to make use of push options.
-# The example simply echoes all push options that start with 'echoback='
-# and rejects all pushes when the "reject" push option is used.
-#
-# To enable this hook, rename this file to "pre-receive".
-
-if test -n "$GIT_PUSH_OPTION_COUNT"
-then
- i=0
- while test "$i" -lt "$GIT_PUSH_OPTION_COUNT"
- do
- eval "value=\$GIT_PUSH_OPTION_$i"
- case "$value" in
- echoback=*)
- echo "echo from the pre-receive-hook: ${value#*=}" >&2
- ;;
- reject)
- exit 1
- esac
- i=$((i + 1))
- done
-fi
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/hooks/prepare-commit-msg.sample b/docs/src/test/bats/fixtures/gs-contract-rest/git/hooks/prepare-commit-msg.sample
deleted file mode 100755
index 10fa14c5..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/git/hooks/prepare-commit-msg.sample
+++ /dev/null
@@ -1,42 +0,0 @@
-#!/bin/sh
-#
-# An example hook script to prepare the commit log message.
-# Called by "git commit" with the name of the file that has the
-# commit message, followed by the description of the commit
-# message's source. The hook's purpose is to edit the commit
-# message file. If the hook fails with a non-zero status,
-# the commit is aborted.
-#
-# To enable this hook, rename this file to "prepare-commit-msg".
-
-# This hook includes three examples. The first one removes the
-# "# Please enter the commit message..." help message.
-#
-# The second includes the output of "git diff --name-status -r"
-# into the message, just before the "git status" output. It is
-# commented because it doesn't cope with --amend or with squashed
-# commits.
-#
-# The third example adds a Signed-off-by line to the message, that can
-# still be edited. This is rarely a good idea.
-
-COMMIT_MSG_FILE=$1
-COMMIT_SOURCE=$2
-SHA1=$3
-
-/usr/bin/perl -i.bak -ne 'print unless(m/^. Please enter the commit message/..m/^#$/)' "$COMMIT_MSG_FILE"
-
-# case "$COMMIT_SOURCE,$SHA1" in
-# ,|template,)
-# /usr/bin/perl -i.bak -pe '
-# print "\n" . `git diff --cached --name-status -r`
-# if /^#/ && $first++ == 0' "$COMMIT_MSG_FILE" ;;
-# *) ;;
-# esac
-
-# SOB=$(git var GIT_COMMITTER_IDENT | sed -n 's/^\(.*>\).*$/Signed-off-by: \1/p')
-# git interpret-trailers --in-place --trailer "$SOB" "$COMMIT_MSG_FILE"
-# if test -z "$COMMIT_SOURCE"
-# then
-# /usr/bin/perl -i.bak -pe 'print "\n" if !$first_line++' "$COMMIT_MSG_FILE"
-# fi
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/hooks/update.sample b/docs/src/test/bats/fixtures/gs-contract-rest/git/hooks/update.sample
deleted file mode 100755
index 80ba9413..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/git/hooks/update.sample
+++ /dev/null
@@ -1,128 +0,0 @@
-#!/bin/sh
-#
-# An example hook script to block unannotated tags from entering.
-# Called by "git receive-pack" with arguments: refname sha1-old sha1-new
-#
-# To enable this hook, rename this file to "update".
-#
-# Config
-# ------
-# hooks.allowunannotated
-# This boolean sets whether unannotated tags will be allowed into the
-# repository. By default they won't be.
-# hooks.allowdeletetag
-# This boolean sets whether deleting tags will be allowed in the
-# repository. By default they won't be.
-# hooks.allowmodifytag
-# This boolean sets whether a tag may be modified after creation. By default
-# it won't be.
-# hooks.allowdeletebranch
-# This boolean sets whether deleting branches will be allowed in the
-# repository. By default they won't be.
-# hooks.denycreatebranch
-# This boolean sets whether remotely creating branches will be denied
-# in the repository. By default this is allowed.
-#
-
-# --- Command line
-refname="$1"
-oldrev="$2"
-newrev="$3"
-
-# --- Safety check
-if [ -z "$GIT_DIR" ]; then
- echo "Don't run this script from the command line." >&2
- echo " (if you want, you could supply GIT_DIR then run" >&2
- echo " $0 [ )" >&2
- exit 1
-fi
-
-if [ -z "$refname" -o -z "$oldrev" -o -z "$newrev" ]; then
- echo "usage: $0 ][ " >&2
- exit 1
-fi
-
-# --- Config
-allowunannotated=$(git config --bool hooks.allowunannotated)
-allowdeletebranch=$(git config --bool hooks.allowdeletebranch)
-denycreatebranch=$(git config --bool hooks.denycreatebranch)
-allowdeletetag=$(git config --bool hooks.allowdeletetag)
-allowmodifytag=$(git config --bool hooks.allowmodifytag)
-
-# check for no description
-projectdesc=$(sed -e '1q' "$GIT_DIR/description")
-case "$projectdesc" in
-"Unnamed repository"* | "")
- echo "*** Project description file hasn't been set" >&2
- exit 1
- ;;
-esac
-
-# --- Check types
-# if $newrev is 0000...0000, it's a commit to delete a ref.
-zero="0000000000000000000000000000000000000000"
-if [ "$newrev" = "$zero" ]; then
- newrev_type=delete
-else
- newrev_type=$(git cat-file -t $newrev)
-fi
-
-case "$refname","$newrev_type" in
- refs/tags/*,commit)
- # un-annotated tag
- short_refname=${refname##refs/tags/}
- if [ "$allowunannotated" != "true" ]; then
- echo "*** The un-annotated tag, $short_refname, is not allowed in this repository" >&2
- echo "*** Use 'git tag [ -a | -s ]' for tags you want to propagate." >&2
- exit 1
- fi
- ;;
- refs/tags/*,delete)
- # delete tag
- if [ "$allowdeletetag" != "true" ]; then
- echo "*** Deleting a tag is not allowed in this repository" >&2
- exit 1
- fi
- ;;
- refs/tags/*,tag)
- # annotated tag
- if [ "$allowmodifytag" != "true" ] && git rev-parse $refname > /dev/null 2>&1
- then
- echo "*** Tag '$refname' already exists." >&2
- echo "*** Modifying a tag is not allowed in this repository." >&2
- exit 1
- fi
- ;;
- refs/heads/*,commit)
- # branch
- if [ "$oldrev" = "$zero" -a "$denycreatebranch" = "true" ]; then
- echo "*** Creating a branch is not allowed in this repository" >&2
- exit 1
- fi
- ;;
- refs/heads/*,delete)
- # delete branch
- if [ "$allowdeletebranch" != "true" ]; then
- echo "*** Deleting a branch is not allowed in this repository" >&2
- exit 1
- fi
- ;;
- refs/remotes/*,commit)
- # tracking branch
- ;;
- refs/remotes/*,delete)
- # delete tracking branch
- if [ "$allowdeletebranch" != "true" ]; then
- echo "*** Deleting a tracking branch is not allowed in this repository" >&2
- exit 1
- fi
- ;;
- *)
- # Anything else (is there anything else?)
- echo "*** Update hook: unknown type of update to ref $refname of type $newrev_type" >&2
- exit 1
- ;;
-esac
-
-# --- Finished
-exit 0
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/index b/docs/src/test/bats/fixtures/gs-contract-rest/git/index
deleted file mode 100644
index df6d496a..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/index and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/info/exclude b/docs/src/test/bats/fixtures/gs-contract-rest/git/info/exclude
deleted file mode 100644
index a5196d1b..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/git/info/exclude
+++ /dev/null
@@ -1,6 +0,0 @@
-# git ls-files --others --exclude-from=.git/info/exclude
-# Lines that start with '#' are comments.
-# For a project mostly in C, the following would be a good set of
-# exclude patterns (uncomment them if you want to use them):
-# *.[oa]
-# *~
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/logs/HEAD b/docs/src/test/bats/fixtures/gs-contract-rest/git/logs/HEAD
deleted file mode 100644
index 44e42740..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/git/logs/HEAD
+++ /dev/null
@@ -1,4 +0,0 @@
-0000000000000000000000000000000000000000 f0bd0f6aaabf6cc795d48fa1cc7fb02b6bffab5e Marcin Grzejszczak 1545049294 +0100 clone: from git@github.com:spring-guides/gs-contract-rest.git
-f0bd0f6aaabf6cc795d48fa1cc7fb02b6bffab5e 06e323583eeda1364779d80eef55110256411426 Marcin Grzejszczak 1545050508 +0100 commit: Updated contract to the latest version; fixes gh-2
-06e323583eeda1364779d80eef55110256411426 1d776d21deba9bd58877220abd802e8794ddb6a3 Marcin Grzejszczak 1556531881 +0400 pull --rebase origin master: Fast-forward
-1d776d21deba9bd58877220abd802e8794ddb6a3 9918bc61b3b4ba0b5005e9ed7debdd50c9838393 Marcin Grzejszczak 1556532308 +0400 commit: Updated to latest
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/logs/refs/heads/master b/docs/src/test/bats/fixtures/gs-contract-rest/git/logs/refs/heads/master
deleted file mode 100644
index 44e42740..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/git/logs/refs/heads/master
+++ /dev/null
@@ -1,4 +0,0 @@
-0000000000000000000000000000000000000000 f0bd0f6aaabf6cc795d48fa1cc7fb02b6bffab5e Marcin Grzejszczak 1545049294 +0100 clone: from git@github.com:spring-guides/gs-contract-rest.git
-f0bd0f6aaabf6cc795d48fa1cc7fb02b6bffab5e 06e323583eeda1364779d80eef55110256411426 Marcin Grzejszczak 1545050508 +0100 commit: Updated contract to the latest version; fixes gh-2
-06e323583eeda1364779d80eef55110256411426 1d776d21deba9bd58877220abd802e8794ddb6a3 Marcin Grzejszczak 1556531881 +0400 pull --rebase origin master: Fast-forward
-1d776d21deba9bd58877220abd802e8794ddb6a3 9918bc61b3b4ba0b5005e9ed7debdd50c9838393 Marcin Grzejszczak 1556532308 +0400 commit: Updated to latest
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/logs/refs/remotes/origin/HEAD b/docs/src/test/bats/fixtures/gs-contract-rest/git/logs/refs/remotes/origin/HEAD
deleted file mode 100644
index c09eb876..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/git/logs/refs/remotes/origin/HEAD
+++ /dev/null
@@ -1 +0,0 @@
-0000000000000000000000000000000000000000 f0bd0f6aaabf6cc795d48fa1cc7fb02b6bffab5e Marcin Grzejszczak 1545049294 +0100 clone: from git@github.com:spring-guides/gs-contract-rest.git
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/logs/refs/remotes/origin/master b/docs/src/test/bats/fixtures/gs-contract-rest/git/logs/refs/remotes/origin/master
deleted file mode 100644
index ad3e734f..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/git/logs/refs/remotes/origin/master
+++ /dev/null
@@ -1,3 +0,0 @@
-f0bd0f6aaabf6cc795d48fa1cc7fb02b6bffab5e 06e323583eeda1364779d80eef55110256411426 Marcin Grzejszczak 1545050516 +0100 update by push
-06e323583eeda1364779d80eef55110256411426 1d776d21deba9bd58877220abd802e8794ddb6a3 Marcin Grzejszczak 1556531881 +0400 pull --rebase origin master: fast-forward
-1d776d21deba9bd58877220abd802e8794ddb6a3 9918bc61b3b4ba0b5005e9ed7debdd50c9838393 Marcin Grzejszczak 1556532314 +0400 update by push
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/02/217b1ecbbaad1a2f40af8ae23e9d0646c128cd b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/02/217b1ecbbaad1a2f40af8ae23e9d0646c128cd
deleted file mode 100644
index dc714cc9..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/02/217b1ecbbaad1a2f40af8ae23e9d0646c128cd and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/05/642da04af298f4073e65af38040869340f5dcf b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/05/642da04af298f4073e65af38040869340f5dcf
deleted file mode 100644
index 3bd1b720..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/05/642da04af298f4073e65af38040869340f5dcf and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/05/c625cda72724071a9f0ad794f9e76f7db6ea74 b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/05/c625cda72724071a9f0ad794f9e76f7db6ea74
deleted file mode 100644
index 91db0962..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/05/c625cda72724071a9f0ad794f9e76f7db6ea74 and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/06/e323583eeda1364779d80eef55110256411426 b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/06/e323583eeda1364779d80eef55110256411426
deleted file mode 100644
index e5def2af..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/06/e323583eeda1364779d80eef55110256411426 and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/07/c5d94dec69904bc5909c980429cece477dfcef b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/07/c5d94dec69904bc5909c980429cece477dfcef
deleted file mode 100644
index fb84ec37..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/07/c5d94dec69904bc5909c980429cece477dfcef and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/0c/76fd1968cf36fd58b656fad187600898ec529d b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/0c/76fd1968cf36fd58b656fad187600898ec529d
deleted file mode 100644
index e69d39bd..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/0c/76fd1968cf36fd58b656fad187600898ec529d and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/10/58721e18f5701a7df5e054669153bd96cd671a b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/10/58721e18f5701a7df5e054669153bd96cd671a
deleted file mode 100644
index 3df31dac..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/10/58721e18f5701a7df5e054669153bd96cd671a and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/12/f88cf082eb043cf13c28ffc34d3803780389b1 b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/12/f88cf082eb043cf13c28ffc34d3803780389b1
deleted file mode 100644
index 9cb79b00..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/12/f88cf082eb043cf13c28ffc34d3803780389b1 and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/14/0c91f11cd2795f57128b6949ad0f27250f25c1 b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/14/0c91f11cd2795f57128b6949ad0f27250f25c1
deleted file mode 100644
index 6a8a9184..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/14/0c91f11cd2795f57128b6949ad0f27250f25c1 and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/14/ed2dca94be823fe1a17c1135496759df85c6f4 b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/14/ed2dca94be823fe1a17c1135496759df85c6f4
deleted file mode 100644
index 7faae558..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/14/ed2dca94be823fe1a17c1135496759df85c6f4 and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/16/5e7f36b3b60076b69486b822d30fbec60ead8e b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/16/5e7f36b3b60076b69486b822d30fbec60ead8e
deleted file mode 100644
index 5cb77555..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/16/5e7f36b3b60076b69486b822d30fbec60ead8e and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/19/acf2f6cc0f0ce4dadfe84585c8dc9f9a0adefe b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/19/acf2f6cc0f0ce4dadfe84585c8dc9f9a0adefe
deleted file mode 100644
index 4909aff2..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/19/acf2f6cc0f0ce4dadfe84585c8dc9f9a0adefe and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/1d/776d21deba9bd58877220abd802e8794ddb6a3 b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/1d/776d21deba9bd58877220abd802e8794ddb6a3
deleted file mode 100644
index 08dc0a27..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/1d/776d21deba9bd58877220abd802e8794ddb6a3 and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/34/36aa104c656156ab2a07a70f48df45c2a5aad7 b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/34/36aa104c656156ab2a07a70f48df45c2a5aad7
deleted file mode 100644
index acb4aa55..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/34/36aa104c656156ab2a07a70f48df45c2a5aad7 and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/36/7a2c8f0efd08ee6e9fd0eec0d81c96e86007fa b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/36/7a2c8f0efd08ee6e9fd0eec0d81c96e86007fa
deleted file mode 100644
index 90c5d9fe..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/36/7a2c8f0efd08ee6e9fd0eec0d81c96e86007fa and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/37/a44dfd41056b153b5e16f66b2c890b0bd2ac45 b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/37/a44dfd41056b153b5e16f66b2c890b0bd2ac45
deleted file mode 100644
index 1583a413..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/37/a44dfd41056b153b5e16f66b2c890b0bd2ac45
+++ /dev/null
@@ -1,4 +0,0 @@
-x•TÑjÛ0Ý«õœ”Y4ØC2ÆX»ÑŒíY–o²%$Å)ù÷^9±`qʺ'Û×WÇçžs®¥:›]}xSì¤*°ÒxúDøƒJ’Ä+›j©µÿ ÖIÝÐ4›³KöžÝ¿®¯7ë,´µ`å½{Ò4M$Ù“Ä‚ÑNzm%8„¯yÍ
-o¹šL)6”` )¡‡Š;g¸ßNRm+v soy
Ú>°‰-Å<Üç•奂ܨ]%›ÅÛ§ÿ}:
„#.=‹+”Þ•pÿˆŠñ'Nfß§aÖ=!ÜÕÑ#šUVë¶ËNË¿yËGEJ£º,aÜü’.ãÓú¨‹:wyÍ^A.Œúºþ=~F Já6¥ànÑ‹¨çs¶•gá’s‰É™å›Ûëï›Ïß~d(“Ó;+`¥k4YRIß!ÖŒ]ÏmþÜò¯ ‘8`$’Ä—
-&ÙKb
^÷!røi6„"›’Äã8Æÿ„“¯B8“·DTuÈbºâ„ÝMt0"k£ÇõÂ÷¶Ôõ«3AQ¶Å'Ùˆ‚ŽmîæC¦2=¾áâ³óKúíc°
-«Š‹IØ‚RéèË7¸ø9Ð:NRvÑŸ`é;šn#bŠ„}z²¡·
\ No newline at end of file
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/39/3a15a127573a68fae586616c9a4a3cf1a5f9fe b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/39/3a15a127573a68fae586616c9a4a3cf1a5f9fe
deleted file mode 100644
index 6ff47bbf..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/39/3a15a127573a68fae586616c9a4a3cf1a5f9fe and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/42/6b51cb75cb7cb668ff9988054db174b2fecf96 b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/42/6b51cb75cb7cb668ff9988054db174b2fecf96
deleted file mode 100644
index a62cc4cd..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/42/6b51cb75cb7cb668ff9988054db174b2fecf96 and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/43/2772dbfb681ea778012f875d4234944096bc93 b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/43/2772dbfb681ea778012f875d4234944096bc93
deleted file mode 100644
index e447cebe..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/43/2772dbfb681ea778012f875d4234944096bc93 and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/43/42e448a0b60216f76c1aab5e6b5d4b76f47454 b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/43/42e448a0b60216f76c1aab5e6b5d4b76f47454
deleted file mode 100644
index 751f865c..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/43/42e448a0b60216f76c1aab5e6b5d4b76f47454 and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/43/9311e4ddc9d8e15c210f63852207e3ebb51757 b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/43/9311e4ddc9d8e15c210f63852207e3ebb51757
deleted file mode 100644
index bbe6d112..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/43/9311e4ddc9d8e15c210f63852207e3ebb51757 and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/44/dcc06bf5e546644d945fc4a1f63c2c5a5e04eb b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/44/dcc06bf5e546644d945fc4a1f63c2c5a5e04eb
deleted file mode 100644
index 5161e965..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/44/dcc06bf5e546644d945fc4a1f63c2c5a5e04eb
+++ /dev/null
@@ -1,3 +0,0 @@
-x+)JMU025b040031QÐ+.(ÊÌKwJMÌ+fðNúøHëëâ%M<‹5oðß]Yúî—T]RifNŠ^zQbJN*Ãn™—RQó*®þ÷-Îû—/Ó& P€*¸»¾¡²mïyµ³²š
-©_ôe4l_ª
275…ª(g8söòUñ?AžûÖýJ`›x^”_ñ3¨]CÊõ’K~†&}T:.m’(ô\üðs㛄 Ê
-òsõ*rsxÊþJfœ7û±-ì×ÅöŽo‚æB\S\”ÌõÞ½{wdžˆ¹79ýôñ¹KoRÅ"»ŽéhèAŠ(ΖÃ×älxü\Š'µ‡èL]WZç猥|å9W@…\²û»[vJG&‹EžïT\£·Û-Ý~´¸Éh4f¿nofx0å$ΔæYÃÁ 8W6z#B®-«Wßæ„ê#´S‘cI,-Š÷Ã`pâ§"‚ä§+;°|ÖŠ
´”¢È¿EA(R
-;žæ ø¬
-âs.u¼à¡¶LK¼$”&
-ä&Ü@ ¾”9@}è˜Ì¾_ÝϾÞ=ú¬Š#¥\ó%Š]Q[Cî¤z‹Œ
U!›ÝßòŒ/!öRíŒÒºª^6oYú
-sni¾«£ÿa}}øÝÀjHÿ´ZEïÑO¹H}f¯ÌœU.‹Ó\ȦϺF;ÏÞЬ%jg÷šÛtI«Þn=Ü‚öÆÎ÷Ëu[ß'‘í½ý>—¹£nÑò•õ|C–3~¡£šVO΋ÜþÕ½Îúì´v2ócFZø n\O‘Á"^Òþ¸pzcS¸‚/ WêZÈG\**XA’ú¹Šû¬qùX7áAÚjÄÍ3ævI9ÝMß1«ùÊa|PÔ‚Á_¨13
\ No newline at end of file
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/5e/cfe0a368c37fc691fbc4402d7b7c9a09bc61c9 b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/5e/cfe0a368c37fc691fbc4402d7b7c9a09bc61c9
deleted file mode 100644
index e4fbc7d9..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/5e/cfe0a368c37fc691fbc4402d7b7c9a09bc61c9 and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/60/f8f09f47b7f829675c4605064077dd1cacc5af b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/60/f8f09f47b7f829675c4605064077dd1cacc5af
deleted file mode 100644
index 7e2f0b6b..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/60/f8f09f47b7f829675c4605064077dd1cacc5af and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/63/69872cfd8183dc786fb7b63287e4c902c9a9c1 b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/63/69872cfd8183dc786fb7b63287e4c902c9a9c1
deleted file mode 100644
index f5834abf..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/63/69872cfd8183dc786fb7b63287e4c902c9a9c1 and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/64/14451b4b130a26848705ef62bf4bdb2bbc1e82 b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/64/14451b4b130a26848705ef62bf4bdb2bbc1e82
deleted file mode 100644
index d542dc48..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/64/14451b4b130a26848705ef62bf4bdb2bbc1e82 and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/65/6cf310557e762b7a41984324b6374069c74830 b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/65/6cf310557e762b7a41984324b6374069c74830
deleted file mode 100644
index 89094cb7..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/65/6cf310557e762b7a41984324b6374069c74830 and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/66/a90db2ca3cfd613c56c0ec359c0ae389028b92 b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/66/a90db2ca3cfd613c56c0ec359c0ae389028b92
deleted file mode 100644
index a5c7692f..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/66/a90db2ca3cfd613c56c0ec359c0ae389028b92 and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/69/15eac7f22860887f3b38fbb69f1bc05a81ee81 b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/69/15eac7f22860887f3b38fbb69f1bc05a81ee81
deleted file mode 100644
index 1212d8c5..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/69/15eac7f22860887f3b38fbb69f1bc05a81ee81 and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/6d/200fda0a7535a5b3593ae8aaba6725f0c745c6 b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/6d/200fda0a7535a5b3593ae8aaba6725f0c745c6
deleted file mode 100644
index 57c904cc..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/6d/200fda0a7535a5b3593ae8aaba6725f0c745c6 and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/6d/3283f926beb40856d18052f7ebd68e01033b6c b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/6d/3283f926beb40856d18052f7ebd68e01033b6c
deleted file mode 100644
index cb8a9275..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/6d/3283f926beb40856d18052f7ebd68e01033b6c and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/6e/1b6437bbb1c27d6f019b53b5ec3033838bf0c3 b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/6e/1b6437bbb1c27d6f019b53b5ec3033838bf0c3
deleted file mode 100644
index ef40c139..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/6e/1b6437bbb1c27d6f019b53b5ec3033838bf0c3 and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/77/f7e96ac43a58d5b5a248fbf95679be2d1384e0 b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/77/f7e96ac43a58d5b5a248fbf95679be2d1384e0
deleted file mode 100644
index ebd654af..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/77/f7e96ac43a58d5b5a248fbf95679be2d1384e0 and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/79/c2a48f28f1075264be65edcfc1cf89cc9eed3d b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/79/c2a48f28f1075264be65edcfc1cf89cc9eed3d
deleted file mode 100644
index 375c59f6..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/79/c2a48f28f1075264be65edcfc1cf89cc9eed3d and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/7a/3f111ab6adbaf604563d04921cbe9d2c05a671 b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/7a/3f111ab6adbaf604563d04921cbe9d2c05a671
deleted file mode 100644
index ddf5bd5f..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/7a/3f111ab6adbaf604563d04921cbe9d2c05a671 and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/7a/a6deb6649e03435cea9d769bbf201ddd69e6ac b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/7a/a6deb6649e03435cea9d769bbf201ddd69e6ac
deleted file mode 100644
index c635fe6e..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/7a/a6deb6649e03435cea9d769bbf201ddd69e6ac and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/7e/88bddc151803161105d37aad44850243bc572f b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/7e/88bddc151803161105d37aad44850243bc572f
deleted file mode 100644
index b5f218f6..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/7e/88bddc151803161105d37aad44850243bc572f and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/7f/cac8bff6db915a1dcd7dbae6b0a871a7bd0360 b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/7f/cac8bff6db915a1dcd7dbae6b0a871a7bd0360
deleted file mode 100644
index 9f2c51aa..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/7f/cac8bff6db915a1dcd7dbae6b0a871a7bd0360 and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/80/c090f6bb954c7ff9c2bd29e47f7fdd66088073 b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/80/c090f6bb954c7ff9c2bd29e47f7fdd66088073
deleted file mode 100644
index d26a9a2d..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/80/c090f6bb954c7ff9c2bd29e47f7fdd66088073 and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/8d/3e70429b301ff5bfd04d3db7b83ffc0fe8d377 b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/8d/3e70429b301ff5bfd04d3db7b83ffc0fe8d377
deleted file mode 100644
index 9d5735a5..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/8d/3e70429b301ff5bfd04d3db7b83ffc0fe8d377 and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/8f/d5689001911d7cef1df3e483391e883c8028bd b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/8f/d5689001911d7cef1df3e483391e883c8028bd
deleted file mode 100644
index 0b6290bc..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/8f/d5689001911d7cef1df3e483391e883c8028bd and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/90/603f5ec53464213fd95d6abce3d48e5a8c1fdd b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/90/603f5ec53464213fd95d6abce3d48e5a8c1fdd
deleted file mode 100644
index ac2309f7..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/90/603f5ec53464213fd95d6abce3d48e5a8c1fdd
+++ /dev/null
@@ -1,6 +0,0 @@
-xµVïo›0Ý׿¯`ѾÚNÒMª*JÕM©6©]«¦›öÕKBÙ&?4íßÙ…µJ¥õKáx>Þ½{wdžˆ¹7ùøéô¹KoRÅ"»ŽéhèAŠ(ΖÃ×älxü\Š'µ‡èL]WZç猥|å9W@…\²û»[ö‘ŽL‹<ß©¸Fo·[º=µ¸Éh4f¿nofx0å$ΔæYÃÁ 8W6z#B®-«Wßæ„ê#´S‘cI,-Š÷Ã`pâ§"‚ä§+;°|ÖŠ
´”¢È¿EA(R
-;žæ ø¬
-âs.u¼à¡¶LK¼$”&
-ä&Ü@ ¾”9@}è˜Ì¾_ÝϾÞ=ú¬Š#¥\ó%ŠQ[Cî¤z‹Œ
U!›ÝßòŒ/!öRíŒÒºª^6oYú
-sni¾«£ÿa}}øÝÀjHÿ´ZEïÑO¹H}f¯ÌœU.‹Ó\ȦϺF;ÏÞЬ%jg÷šÛtI«Þn=Ü‚öÆÎ÷Ëu[ß'‘í½ý>—¹£nÑò•õ|C–3~¡£šVO΋ÜþÕ½Îúì´v2ócFZø n\O‘Á"^Òþ¸pzcS¸‚/ WêZÈG\**XA’ú¹Šû¬qùX7áAÚjÄÍ3ævI9ÝMß1«ùÊa|PÔ‚Á_ ®12
\ No newline at end of file
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/93/cc79712428d299c17ca6c1c3289597dd9308d7 b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/93/cc79712428d299c17ca6c1c3289597dd9308d7
deleted file mode 100644
index 20cb3069..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/93/cc79712428d299c17ca6c1c3289597dd9308d7 and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/96/3fecd3b48f0e30a07849975792c657ce660fc1 b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/96/3fecd3b48f0e30a07849975792c657ce660fc1
deleted file mode 100644
index 4fee8fb9..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/96/3fecd3b48f0e30a07849975792c657ce660fc1 and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/98/1c971f8b95299fb716b9e089c8f4f62986005f b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/98/1c971f8b95299fb716b9e089c8f4f62986005f
deleted file mode 100644
index ef1ff38e..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/98/1c971f8b95299fb716b9e089c8f4f62986005f and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/99/18bc61b3b4ba0b5005e9ed7debdd50c9838393 b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/99/18bc61b3b4ba0b5005e9ed7debdd50c9838393
deleted file mode 100644
index f5726851..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/99/18bc61b3b4ba0b5005e9ed7debdd50c9838393 and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/9a/33d8bd92dc9a1cb68cc6597fc58a220da7c554 b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/9a/33d8bd92dc9a1cb68cc6597fc58a220da7c554
deleted file mode 100644
index 7347771a..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/9a/33d8bd92dc9a1cb68cc6597fc58a220da7c554 and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/a0/075039ad15e31566d66cb8fb02f49e4eac9e9d b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/a0/075039ad15e31566d66cb8fb02f49e4eac9e9d
deleted file mode 100644
index 3275d88b..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/a0/075039ad15e31566d66cb8fb02f49e4eac9e9d and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/a1/57874edcedad4c0992b990afb2fc66ea643ea9 b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/a1/57874edcedad4c0992b990afb2fc66ea643ea9
deleted file mode 100644
index e44f6c71..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/a1/57874edcedad4c0992b990afb2fc66ea643ea9 and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/a1/b8a3c355c86992a7fad50ab636927edf47c024 b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/a1/b8a3c355c86992a7fad50ab636927edf47c024
deleted file mode 100644
index 6beeec6f..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/a1/b8a3c355c86992a7fad50ab636927edf47c024 and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/a4/9d7aa1a7dc76e5dbf7eaa08184c5bb103cd719 b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/a4/9d7aa1a7dc76e5dbf7eaa08184c5bb103cd719
deleted file mode 100644
index 98f5e1a4..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/a4/9d7aa1a7dc76e5dbf7eaa08184c5bb103cd719 and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/a5/eabcf7c43012d5933f1a88e94abc3be163e4ed b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/a5/eabcf7c43012d5933f1a88e94abc3be163e4ed
deleted file mode 100644
index d3e4f410..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/a5/eabcf7c43012d5933f1a88e94abc3be163e4ed and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/aa/59769ed864c32772e43ef4feccfc2f6fb51657 b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/aa/59769ed864c32772e43ef4feccfc2f6fb51657
deleted file mode 100644
index 1f924885..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/aa/59769ed864c32772e43ef4feccfc2f6fb51657 and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/aa/9cab821068932e018437d1e6e4351fadf546ba b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/aa/9cab821068932e018437d1e6e4351fadf546ba
deleted file mode 100644
index c5d0d2b4..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/aa/9cab821068932e018437d1e6e4351fadf546ba and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/ab/4228bb1d37ac55766fcc97de5cb0a0d10c01d9 b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/ab/4228bb1d37ac55766fcc97de5cb0a0d10c01d9
deleted file mode 100644
index 9100a805..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/ab/4228bb1d37ac55766fcc97de5cb0a0d10c01d9 and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/ab/731a2b0e47fd42f6a67bf83de93562bebf3cb3 b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/ab/731a2b0e47fd42f6a67bf83de93562bebf3cb3
deleted file mode 100644
index 1acaaf91..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/ab/731a2b0e47fd42f6a67bf83de93562bebf3cb3 and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/af/e58c2e92836fb2cac22ba5f6634aee9d55243b b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/af/e58c2e92836fb2cac22ba5f6634aee9d55243b
deleted file mode 100644
index 0812e7e0..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/af/e58c2e92836fb2cac22ba5f6634aee9d55243b and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/b2/35a16fd9d634f7f80dbf7a97deb3bfa2060baf b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/b2/35a16fd9d634f7f80dbf7a97deb3bfa2060baf
deleted file mode 100644
index 830d58dd..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/b2/35a16fd9d634f7f80dbf7a97deb3bfa2060baf and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/b2/a2195d221f2ae4531bebcb3d3de84694f42116 b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/b2/a2195d221f2ae4531bebcb3d3de84694f42116
deleted file mode 100644
index 93eaaaf7..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/b2/a2195d221f2ae4531bebcb3d3de84694f42116 and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/b5/ed2b7dce19e5f4fad66380a02ba73f6d53ceb8 b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/b5/ed2b7dce19e5f4fad66380a02ba73f6d53ceb8
deleted file mode 100644
index f7670022..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/b5/ed2b7dce19e5f4fad66380a02ba73f6d53ceb8 and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/b9/5abbbdd39472e5bc971b792b0d9d7a4a531f90 b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/b9/5abbbdd39472e5bc971b792b0d9d7a4a531f90
deleted file mode 100644
index 23e63023..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/b9/5abbbdd39472e5bc971b792b0d9d7a4a531f90
+++ /dev/null
@@ -1,5 +0,0 @@
-x•SËnÛ0ìUü
-Â( û ÆN.CEk4Na¹”´U˜R$ARN…Àÿž¥,«;hz’DíÎÎÎs©s:›^_½Ë!KWXa<}&üÄuÆ
-UÝhíïÁ:¡ý@ãK6cWl“~IYÓ=‰,í„×V€Ã®šï@-AyËåx
-J0 JPÅ¡€DQ!¹s†û‡ñHÛŠ}·¼†'m°G·IxO*ËK ‰‘M%Ôüýó ³ýhBI´'{B¸1²¥})ùŽÇB!…qpr.J8-~ái·î7aÃÆmRsÅ+¨Q˜°ÌŠÛ qάqá i¡ƒZ…O,8Ÿ ·®:ÚýR}ʦl–dëÅ×ìÓÝ6Æ=nlK]£Œ"Rø¡fìšxn+ðçþYEâU$*_Hǯ‰ð‡MG{°Éäñ„D· 4þ t¾ ¡º)ºäHbÕù&Ol£XÄÄ„K¶·ƒ9ÁQm=fÚ¥øF×ôl@ÏŒ@Q¹ùG¡Š -Ë6—£>—}æúÿnT ʲsÌBw½Ú}={,=“¼A@¼ŒlµI¿-ïÖÛÅçuº ¡EÇvÚ¹ô†¾‹àæïuB¡mŠKnÞT¬ýD°,ó\•Ü–÷·ÛÖÀÅ
-¯S–&˜³¸ßë*a*
\ No newline at end of file
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/bc/1b35ca134aca5ae9c8a24f2b18838152fdc039 b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/bc/1b35ca134aca5ae9c8a24f2b18838152fdc039
deleted file mode 100644
index 54c8b605..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/bc/1b35ca134aca5ae9c8a24f2b18838152fdc039 and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/bd/3645700bcf3b9b31c8e98da229dad39c461a48 b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/bd/3645700bcf3b9b31c8e98da229dad39c461a48
deleted file mode 100644
index fdd0c1fe..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/bd/3645700bcf3b9b31c8e98da229dad39c461a48 and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/cf/745d792fe8239c7e8cff42be7a0d8dd5e4fd04 b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/cf/745d792fe8239c7e8cff42be7a0d8dd5e4fd04
deleted file mode 100644
index d41d8dac..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/cf/745d792fe8239c7e8cff42be7a0d8dd5e4fd04 and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/d3/a7e95ca8ce419071d12f927bb54c17c6402c1c b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/d3/a7e95ca8ce419071d12f927bb54c17c6402c1c
deleted file mode 100644
index afc83216..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/d3/a7e95ca8ce419071d12f927bb54c17c6402c1c and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/d4/0b1ce91a5a9ee121abfef65e4bfa480d0f82b2 b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/d4/0b1ce91a5a9ee121abfef65e4bfa480d0f82b2
deleted file mode 100644
index daca1ad7..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/d4/0b1ce91a5a9ee121abfef65e4bfa480d0f82b2 and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/d6/96dcda356c55fbf593fafad7b1846be8b2d4f1 b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/d6/96dcda356c55fbf593fafad7b1846be8b2d4f1
deleted file mode 100644
index 369e35f6..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/d6/96dcda356c55fbf593fafad7b1846be8b2d4f1 and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/dc/4738cc68a547838b40d80d1ccde4f3294c11be b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/dc/4738cc68a547838b40d80d1ccde4f3294c11be
deleted file mode 100644
index cd4eeb47..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/dc/4738cc68a547838b40d80d1ccde4f3294c11be and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/dc/fa61079179434b5319340c3fc1007a14ff5432 b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/dc/fa61079179434b5319340c3fc1007a14ff5432
deleted file mode 100644
index 3264fb43..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/dc/fa61079179434b5319340c3fc1007a14ff5432 and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/e1/ef108295d8e442e1799331513f2a3b83d64eb6 b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/e1/ef108295d8e442e1799331513f2a3b83d64eb6
deleted file mode 100644
index 76a8dc23..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/e1/ef108295d8e442e1799331513f2a3b83d64eb6 and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/e4/be60503d348b89c6d92d1fcac10daa4cd036f9 b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/e4/be60503d348b89c6d92d1fcac10daa4cd036f9
deleted file mode 100644
index b50c4820..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/e4/be60503d348b89c6d92d1fcac10daa4cd036f9 and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/e5/cde4a98d7518c44d0bb655df3cb7464bcf4eff b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/e5/cde4a98d7518c44d0bb655df3cb7464bcf4eff
deleted file mode 100644
index 42b67d2a..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/e5/cde4a98d7518c44d0bb655df3cb7464bcf4eff
+++ /dev/null
@@ -1,4 +0,0 @@
-x•]oÛ †wÿ
-Ï÷@ÒjUQW½HµIí5Ý´[‚IâÖ8ÿ~;v’µ«´;À/ðœ÷œƒg…šÅ£‹ó‹OôfSñJ›+yŒð0‰…ä*Ëåâ:ùù|‡.“›4¢Ú¨Á]ji¯“¥súŠ’„ÄL3¾X™™<>¯xèO Ê«Í[õz½Æë/Aw6ŽÈï‡û)l,Ê¥uLr‘DØpeÃê½â̪wo‹½ÂžÚج¦DÃõºàÜ’¥UIIùBmlÉK$¸Mbׇˡ/=A×0,tcÝŸEïSèUèÝ0
ò¶1GopvÒÙ}•Â?Õ'Ù½ß^ÙŒ=%;Â(jŸ‡4ú(qM»
\ No newline at end of file
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/e8/1516ff53cbede145f9e5172b037774c724fb27 b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/e8/1516ff53cbede145f9e5172b037774c724fb27
deleted file mode 100644
index 090ed068..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/e8/1516ff53cbede145f9e5172b037774c724fb27 and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/ea/13e4270dfb7209bd5629d60702dd7f52592277 b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/ea/13e4270dfb7209bd5629d60702dd7f52592277
deleted file mode 100644
index 2a311a5e..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/ea/13e4270dfb7209bd5629d60702dd7f52592277 and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/ec/4725a8d10e4decdc41b1ed3f831e2e9aa35a9b b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/ec/4725a8d10e4decdc41b1ed3f831e2e9aa35a9b
deleted file mode 100644
index 417719b8..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/ec/4725a8d10e4decdc41b1ed3f831e2e9aa35a9b and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/ed/eb2a15b25e72bfc0ad450820888afe22261390 b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/ed/eb2a15b25e72bfc0ad450820888afe22261390
deleted file mode 100644
index a90aa0e4..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/ed/eb2a15b25e72bfc0ad450820888afe22261390 and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/ee/882bcd6ecd75d2748643c1f5111f1940ee4661 b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/ee/882bcd6ecd75d2748643c1f5111f1940ee4661
deleted file mode 100644
index aafc263a..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/ee/882bcd6ecd75d2748643c1f5111f1940ee4661 and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/f0/27490f12bca39783187755f330428f15f66a43 b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/f0/27490f12bca39783187755f330428f15f66a43
deleted file mode 100644
index 91736f96..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/f0/27490f12bca39783187755f330428f15f66a43 and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/f5/030d9ae6a801e6eba3a81c1f688c5a081d5835 b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/f5/030d9ae6a801e6eba3a81c1f688c5a081d5835
deleted file mode 100644
index d0d605bc..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/f5/030d9ae6a801e6eba3a81c1f688c5a081d5835 and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/f7/91ce489788482f193eba093951bbfea3cf520a b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/f7/91ce489788482f193eba093951bbfea3cf520a
deleted file mode 100644
index 41600323..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/f7/91ce489788482f193eba093951bbfea3cf520a
+++ /dev/null
@@ -1,8 +0,0 @@
-x•SËnÛ0ìUü
-Â( û@ÆN{ôà*Z£q
-Ëȵ ¤Â”"’r*þ÷,eY}ØAÓ“$jwvvf˜)“ÑÙôêÝ›¬‘ªp¹•µ§O$‚Ÿø ®¶R—ׯø;°NM?Ðø’Ïø{¾I¾$‹4‰éžDjã¤7V‚îJì@/A{+Ôx
-
-¨A óC‰¢\ çjáïÇ#cK~ôÝŠ
-ýÁ39?²ðÎJ+
-¬VM)õüíÓ ³ýhBI´'{BD]«–ö¥4~;ÿ}¹’µƒ“sYÀiñKO»M¿ 6nY%´(¡B=bBÂ2+aƒÄ™p°Æ…ƒ¦¹ jåžYpž!·®:ÚýR}ʧ|ÆÒõâkúévãžÎ46‡¥©PF™I%}‹P3~E¼°%øsÈ¿¬"ñÎ*åˆ/Œã—DøÃ&‡£=XöY-AÇ8y«ÐG=ßÃk0äØT!¼ÛÃî©©PŸÞÃp&z*ö½eRçX5_¹
\ No newline at end of file
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/pack/pack-a3986ffd65e466d0db2c9831609837ceb466b7a1.idx b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/pack/pack-a3986ffd65e466d0db2c9831609837ceb466b7a1.idx
deleted file mode 100644
index eadbf838..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/pack/pack-a3986ffd65e466d0db2c9831609837ceb466b7a1.idx and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/pack/pack-a3986ffd65e466d0db2c9831609837ceb466b7a1.pack b/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/pack/pack-a3986ffd65e466d0db2c9831609837ceb466b7a1.pack
deleted file mode 100644
index fd17fcdd..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/git/objects/pack/pack-a3986ffd65e466d0db2c9831609837ceb466b7a1.pack and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/packed-refs b/docs/src/test/bats/fixtures/gs-contract-rest/git/packed-refs
deleted file mode 100644
index b485431b..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/git/packed-refs
+++ /dev/null
@@ -1,10 +0,0 @@
-# pack-refs with: peeled fully-peeled sorted
-f0bd0f6aaabf6cc795d48fa1cc7fb02b6bffab5e refs/remotes/origin/master
-1467e747b9465e3f253480553550bcb60e816ebe refs/tags/1.5.10.RELEASE
-c9ed896050ee28b7b64a6e971fea7c07be909cce refs/tags/2.0.0.RELEASE
-f7b110e81f4609d44057a211964ed57fe17e9997 refs/tags/2.0.1.RELEASE
-ebe88e9e4da07223f139e06aaea4c426d3844887 refs/tags/2.0.2.RELEASE
-2c35a5496198b31f9c2bfc19bfad8ea89fb55b54 refs/tags/2.0.3.RELEASE
-acc7fc29e206b1283aabf47b19e263f156492360 refs/tags/2.0.5.RELEASE
-2935ef48f784f09dd2d85805321750c7fb350dc6 refs/tags/edgware.sr2
-bc0a699ddbe6060f87fb654cbec11a125e82d053 refs/tags/finchley.sr2
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/refs/heads/master b/docs/src/test/bats/fixtures/gs-contract-rest/git/refs/heads/master
deleted file mode 100644
index cb941bfa..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/git/refs/heads/master
+++ /dev/null
@@ -1 +0,0 @@
-9918bc61b3b4ba0b5005e9ed7debdd50c9838393
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/refs/remotes/origin/HEAD b/docs/src/test/bats/fixtures/gs-contract-rest/git/refs/remotes/origin/HEAD
deleted file mode 100644
index 6efe28ff..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/git/refs/remotes/origin/HEAD
+++ /dev/null
@@ -1 +0,0 @@
-ref: refs/remotes/origin/master
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/git/refs/remotes/origin/master b/docs/src/test/bats/fixtures/gs-contract-rest/git/refs/remotes/origin/master
deleted file mode 100644
index cb941bfa..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/git/refs/remotes/origin/master
+++ /dev/null
@@ -1 +0,0 @@
-9918bc61b3b4ba0b5005e9ed7debdd50c9838393
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/initial/.mvn/wrapper/maven-wrapper.jar b/docs/src/test/bats/fixtures/gs-contract-rest/initial/.mvn/wrapper/maven-wrapper.jar
deleted file mode 100644
index 5fd4d502..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/initial/.mvn/wrapper/maven-wrapper.jar and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/initial/.mvn/wrapper/maven-wrapper.properties b/docs/src/test/bats/fixtures/gs-contract-rest/initial/.mvn/wrapper/maven-wrapper.properties
deleted file mode 100644
index c954cec9..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/initial/.mvn/wrapper/maven-wrapper.properties
+++ /dev/null
@@ -1 +0,0 @@
-distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.3.9/apache-maven-3.3.9-bin.zip
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/initial/contract-rest-client/build.gradle b/docs/src/test/bats/fixtures/gs-contract-rest/initial/contract-rest-client/build.gradle
deleted file mode 100644
index f791ce48..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/initial/contract-rest-client/build.gradle
+++ /dev/null
@@ -1,42 +0,0 @@
-buildscript {
- ext { springBootVersion = '2.1.4.RELEASE' }
- repositories { mavenCentral() }
- dependencies {
- classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
- }
-}
-
-apply plugin: 'java'
-apply plugin: 'eclipse'
-apply plugin: 'idea'
-apply plugin: 'org.springframework.boot'
-apply plugin: 'io.spring.dependency-management'
-
-bootJar {
- baseName = 'contract-rest-client'
- version = '0.0.1-SNAPSHOT'
-}
-sourceCompatibility = 1.8
-targetCompatibility = 1.8
-
-repositories { mavenCentral() }
-
-dependencies {
- compile('org.springframework.boot:spring-boot-starter-web')
- testCompile('org.springframework.boot:spring-boot-starter-test')
- testCompile('org.springframework.cloud:spring-cloud-starter-contract-stub-runner')
-}
-
-dependencyManagement {
- imports {
- mavenBom "org.springframework.cloud:spring-cloud-dependencies:Finchley.SR2"
- }
-}
-
-eclipse {
- classpath {
- containers.remove('org.eclipse.jdt.launching.JRE_CONTAINER')
- containers 'org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8'
- }
-}
-
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/initial/contract-rest-client/gradle/wrapper/gradle-wrapper.jar b/docs/src/test/bats/fixtures/gs-contract-rest/initial/contract-rest-client/gradle/wrapper/gradle-wrapper.jar
deleted file mode 100644
index 6b6ea3ab..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/initial/contract-rest-client/gradle/wrapper/gradle-wrapper.jar and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/initial/contract-rest-client/gradle/wrapper/gradle-wrapper.properties b/docs/src/test/bats/fixtures/gs-contract-rest/initial/contract-rest-client/gradle/wrapper/gradle-wrapper.properties
deleted file mode 100644
index ea720f98..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/initial/contract-rest-client/gradle/wrapper/gradle-wrapper.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-distributionBase=GRADLE_USER_HOME
-distributionPath=wrapper/dists
-zipStoreBase=GRADLE_USER_HOME
-zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-bin.zip
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/initial/contract-rest-client/gradlew b/docs/src/test/bats/fixtures/gs-contract-rest/initial/contract-rest-client/gradlew
deleted file mode 100755
index cccdd3d5..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/initial/contract-rest-client/gradlew
+++ /dev/null
@@ -1,172 +0,0 @@
-#!/usr/bin/env sh
-
-##############################################################################
-##
-## Gradle start up script for UN*X
-##
-##############################################################################
-
-# Attempt to set APP_HOME
-# Resolve links: $0 may be a link
-PRG="$0"
-# Need this for relative symlinks.
-while [ -h "$PRG" ] ; do
- ls=`ls -ld "$PRG"`
- link=`expr "$ls" : '.*-> \(.*\)$'`
- if expr "$link" : '/.*' > /dev/null; then
- PRG="$link"
- else
- PRG=`dirname "$PRG"`"/$link"
- fi
-done
-SAVED="`pwd`"
-cd "`dirname \"$PRG\"`/" >/dev/null
-APP_HOME="`pwd -P`"
-cd "$SAVED" >/dev/null
-
-APP_NAME="Gradle"
-APP_BASE_NAME=`basename "$0"`
-
-# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-DEFAULT_JVM_OPTS=""
-
-# Use the maximum available, or set MAX_FD != -1 to use that value.
-MAX_FD="maximum"
-
-warn () {
- echo "$*"
-}
-
-die () {
- echo
- echo "$*"
- echo
- exit 1
-}
-
-# OS specific support (must be 'true' or 'false').
-cygwin=false
-msys=false
-darwin=false
-nonstop=false
-case "`uname`" in
- CYGWIN* )
- cygwin=true
- ;;
- Darwin* )
- darwin=true
- ;;
- MINGW* )
- msys=true
- ;;
- NONSTOP* )
- nonstop=true
- ;;
-esac
-
-CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
-
-# Determine the Java command to use to start the JVM.
-if [ -n "$JAVA_HOME" ] ; then
- if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
- # IBM's JDK on AIX uses strange locations for the executables
- JAVACMD="$JAVA_HOME/jre/sh/java"
- else
- JAVACMD="$JAVA_HOME/bin/java"
- fi
- if [ ! -x "$JAVACMD" ] ; then
- die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
-
-Please set the JAVA_HOME variable in your environment to match the
-location of your Java installation."
- fi
-else
- JAVACMD="java"
- which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-
-Please set the JAVA_HOME variable in your environment to match the
-location of your Java installation."
-fi
-
-# Increase the maximum file descriptors if we can.
-if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
- MAX_FD_LIMIT=`ulimit -H -n`
- if [ $? -eq 0 ] ; then
- if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
- MAX_FD="$MAX_FD_LIMIT"
- fi
- ulimit -n $MAX_FD
- if [ $? -ne 0 ] ; then
- warn "Could not set maximum file descriptor limit: $MAX_FD"
- fi
- else
- warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
- fi
-fi
-
-# For Darwin, add options to specify how the application appears in the dock
-if $darwin; then
- GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
-fi
-
-# For Cygwin, switch paths to Windows format before running java
-if $cygwin ; then
- APP_HOME=`cygpath --path --mixed "$APP_HOME"`
- CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
- JAVACMD=`cygpath --unix "$JAVACMD"`
-
- # We build the pattern for arguments to be converted via cygpath
- ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
- SEP=""
- for dir in $ROOTDIRSRAW ; do
- ROOTDIRS="$ROOTDIRS$SEP$dir"
- SEP="|"
- done
- OURCYGPATTERN="(^($ROOTDIRS))"
- # Add a user-defined pattern to the cygpath arguments
- if [ "$GRADLE_CYGPATTERN" != "" ] ; then
- OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
- fi
- # Now convert the arguments - kludge to limit ourselves to /bin/sh
- i=0
- for arg in "$@" ; do
- CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
- CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
-
- if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
- eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
- else
- eval `echo args$i`="\"$arg\""
- fi
- i=$((i+1))
- done
- case $i in
- (0) set -- ;;
- (1) set -- "$args0" ;;
- (2) set -- "$args0" "$args1" ;;
- (3) set -- "$args0" "$args1" "$args2" ;;
- (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
- (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
- (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
- (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
- (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
- (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
- esac
-fi
-
-# Escape application args
-save () {
- for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
- echo " "
-}
-APP_ARGS=$(save "$@")
-
-# Collect all arguments for the java command, following the shell quoting and substitution rules
-eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
-
-# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
-if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
- cd "$(dirname "$0")"
-fi
-
-exec "$JAVACMD" "$@"
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/initial/contract-rest-client/gradlew.bat b/docs/src/test/bats/fixtures/gs-contract-rest/initial/contract-rest-client/gradlew.bat
deleted file mode 100644
index f9553162..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/initial/contract-rest-client/gradlew.bat
+++ /dev/null
@@ -1,84 +0,0 @@
-@if "%DEBUG%" == "" @echo off
-@rem ##########################################################################
-@rem
-@rem Gradle startup script for Windows
-@rem
-@rem ##########################################################################
-
-@rem Set local scope for the variables with windows NT shell
-if "%OS%"=="Windows_NT" setlocal
-
-set DIRNAME=%~dp0
-if "%DIRNAME%" == "" set DIRNAME=.
-set APP_BASE_NAME=%~n0
-set APP_HOME=%DIRNAME%
-
-@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-set DEFAULT_JVM_OPTS=
-
-@rem Find java.exe
-if defined JAVA_HOME goto findJavaFromJavaHome
-
-set JAVA_EXE=java.exe
-%JAVA_EXE% -version >NUL 2>&1
-if "%ERRORLEVEL%" == "0" goto init
-
-echo.
-echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:findJavaFromJavaHome
-set JAVA_HOME=%JAVA_HOME:"=%
-set JAVA_EXE=%JAVA_HOME%/bin/java.exe
-
-if exist "%JAVA_EXE%" goto init
-
-echo.
-echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:init
-@rem Get command-line arguments, handling Windows variants
-
-if not "%OS%" == "Windows_NT" goto win9xME_args
-
-:win9xME_args
-@rem Slurp the command line arguments.
-set CMD_LINE_ARGS=
-set _SKIP=2
-
-:win9xME_args_slurp
-if "x%~1" == "x" goto execute
-
-set CMD_LINE_ARGS=%*
-
-:execute
-@rem Setup the command line
-
-set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
-
-@rem Execute Gradle
-"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
-
-:end
-@rem End local scope for the variables with windows NT shell
-if "%ERRORLEVEL%"=="0" goto mainEnd
-
-:fail
-rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
-rem the _cmd.exe /c_ return code!
-if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
-exit /b 1
-
-:mainEnd
-if "%OS%"=="Windows_NT" endlocal
-
-:omega
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/initial/contract-rest-client/pom.xml b/docs/src/test/bats/fixtures/gs-contract-rest/initial/contract-rest-client/pom.xml
deleted file mode 100644
index 79d4c2c1..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/initial/contract-rest-client/pom.xml
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
- 4.0.0
-
- com.example
- contract-rest-client
- 0.0.1-SNAPSHOT
- jar
-
-
- org.springframework.boot
- spring-boot-starter-parent
- 2.2.0.RC1
-
-
-
-
- UTF-8
- 1.8
-
-
-
-
- org.springframework.boot
- spring-boot-starter-web
-
-
-
- org.springframework.boot
- spring-boot-starter-test
- test
-
-
- org.springframework.cloud
- spring-cloud-starter-contract-stub-runner
- test
-
-
-
-
-
-
-
- org.springframework.cloud
- spring-cloud-dependencies
- Finchley.SR2
- pom
- import
-
-
-
-
-
-
-
- org.springframework.boot
- spring-boot-maven-plugin
-
-
-
-
-
-
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/initial/contract-rest-client/src/main/java/hello/ContractRestClientApplication.java b/docs/src/test/bats/fixtures/gs-contract-rest/initial/contract-rest-client/src/main/java/hello/ContractRestClientApplication.java
deleted file mode 100644
index 2ae34d72..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/initial/contract-rest-client/src/main/java/hello/ContractRestClientApplication.java
+++ /dev/null
@@ -1,34 +0,0 @@
-package hello;
-
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.boot.web.client.RestTemplateBuilder;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-import org.springframework.web.client.RestTemplate;
-
-@SpringBootApplication
-public class ContractRestClientApplication {
-
- public static void main(String[] args) {
- SpringApplication.run(ContractRestClientApplication.class, args);
- }
-}
-
-@RestController
-class MessageRestController {
-
- private final RestTemplate restTemplate;
-
- MessageRestController(RestTemplateBuilder restTemplateBuilder) {
- this.restTemplate = restTemplateBuilder.build();
- }
-
- @RequestMapping("/message/{personId}")
- String getMessage(@PathVariable("personId") Long personId) {
- Person person = this.restTemplate.getForObject("http://localhost:8000/person/{personId}", Person.class, personId);
- return "Hello " + person.getName();
- }
-
-}
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/initial/contract-rest-client/src/main/java/hello/Person.java b/docs/src/test/bats/fixtures/gs-contract-rest/initial/contract-rest-client/src/main/java/hello/Person.java
deleted file mode 100644
index 14225f9c..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/initial/contract-rest-client/src/main/java/hello/Person.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package hello;
-
-class Person {
-
- public Person() {
- }
-
- public Person(Long id, String name, String surname) {
- this.id = id;
- this.name = name;
- this.surname = surname;
- }
-
- private Long id;
-
- private String name;
-
- private String surname;
-
- public Long getId() {
- return id;
- }
-
- public void setId(Long id) {
- this.id = id;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public String getSurname() {
- return surname;
- }
-
- public void setSurname(String surname) {
- this.surname = surname;
- }
-
-}
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/initial/contract-rest-client/src/main/resources/application.properties b/docs/src/test/bats/fixtures/gs-contract-rest/initial/contract-rest-client/src/main/resources/application.properties
deleted file mode 100644
index af7da77e..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/initial/contract-rest-client/src/main/resources/application.properties
+++ /dev/null
@@ -1,3 +0,0 @@
-spring.application.name=contract-rest-client
-
-server.port=9000
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/initial/contract-rest-client/src/test/java/hello/ContractRestClientApplicationTest.java b/docs/src/test/bats/fixtures/gs-contract-rest/initial/contract-rest-client/src/test/java/hello/ContractRestClientApplicationTest.java
deleted file mode 100644
index a0075039..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/initial/contract-rest-client/src/test/java/hello/ContractRestClientApplicationTest.java
+++ /dev/null
@@ -1,37 +0,0 @@
-package hello;
-
-import org.assertj.core.api.BDDAssertions;
-import org.junit.Rule;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.springframework.boot.test.context.SpringBootTest;
-import org.springframework.cloud.contract.stubrunner.junit.StubRunnerRule;
-import org.springframework.cloud.contract.stubrunner.spring.AutoConfigureStubRunner;
-import org.springframework.cloud.contract.stubrunner.spring.StubRunnerProperties;
-import org.springframework.http.ResponseEntity;
-import org.springframework.test.context.junit4.SpringRunner;
-import org.springframework.web.client.RestTemplate;
-
-@RunWith(SpringRunner.class)
-@SpringBootTest
-@AutoConfigureStubRunner(
- ids = "com.example:contract-rest-service:0.0.1-SNAPSHOT:stubs:8100",
- stubsMode = StubRunnerProperties.StubsMode.LOCAL
-)
-public class ContractRestClientApplicationTest {
-
- @Test
- public void get_person_from_service_contract() {
- // given:
- RestTemplate restTemplate = new RestTemplate();
-
- // when:
- ResponseEntity personResponseEntity = restTemplate.getForEntity("http://localhost:8100/person/1", Person.class);
-
- // then:
- BDDAssertions.then(personResponseEntity.getStatusCodeValue()).isEqualTo(200);
- BDDAssertions.then(personResponseEntity.getBody().getId()).isEqualTo(1l);
- BDDAssertions.then(personResponseEntity.getBody().getName()).isEqualTo("foo");
- BDDAssertions.then(personResponseEntity.getBody().getSurname()).isEqualTo("bee");
- }
-}
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/initial/contract-rest-service/build.gradle b/docs/src/test/bats/fixtures/gs-contract-rest/initial/contract-rest-service/build.gradle
deleted file mode 100644
index 491e80a3..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/initial/contract-rest-service/build.gradle
+++ /dev/null
@@ -1,48 +0,0 @@
-buildscript {
- ext {
- springBootVersion = '2.1.4.RELEASE'
- verifierVersion = '2.0.2.RELEASE'
- }
- repositories { mavenCentral() }
- dependencies {
- classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
- classpath "org.springframework.cloud:spring-cloud-contract-gradle-plugin:${verifierVersion}"
- }
-}
-
-apply plugin: 'groovy'
-apply plugin: 'java'
-apply plugin: 'eclipse'
-apply plugin: 'idea'
-apply plugin: 'org.springframework.boot'
-apply plugin: 'io.spring.dependency-management'
-apply plugin: 'spring-cloud-contract'
-
-
-bootJar {
- baseName = 'contract-rest-service'
- version = '0.0.1-SNAPSHOT'
-}
-sourceCompatibility = 1.8
-targetCompatibility = 1.8
-
-repositories { mavenCentral() }
-
-dependencies {
- compile('org.springframework.boot:spring-boot-starter-web')
- testCompile('org.springframework.boot:spring-boot-starter-test')
- testCompile('org.springframework.cloud:spring-cloud-starter-contract-verifier')
-}
-
-dependencyManagement {
- imports {
- mavenBom "org.springframework.cloud:spring-cloud-dependencies:Finchley.SR2"
- }
-}
-
-contracts {
- packageWithBaseClasses = 'hello'
- baseClassMappings {
- baseClassMapping(".*hello.*", "hello.BaseClass")
- }
-}
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/initial/contract-rest-service/gradle/wrapper/gradle-wrapper.jar b/docs/src/test/bats/fixtures/gs-contract-rest/initial/contract-rest-service/gradle/wrapper/gradle-wrapper.jar
deleted file mode 100644
index 6b6ea3ab..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/initial/contract-rest-service/gradle/wrapper/gradle-wrapper.jar and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/initial/contract-rest-service/gradle/wrapper/gradle-wrapper.properties b/docs/src/test/bats/fixtures/gs-contract-rest/initial/contract-rest-service/gradle/wrapper/gradle-wrapper.properties
deleted file mode 100644
index ea720f98..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/initial/contract-rest-service/gradle/wrapper/gradle-wrapper.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-distributionBase=GRADLE_USER_HOME
-distributionPath=wrapper/dists
-zipStoreBase=GRADLE_USER_HOME
-zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-bin.zip
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/initial/contract-rest-service/gradlew b/docs/src/test/bats/fixtures/gs-contract-rest/initial/contract-rest-service/gradlew
deleted file mode 100755
index cccdd3d5..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/initial/contract-rest-service/gradlew
+++ /dev/null
@@ -1,172 +0,0 @@
-#!/usr/bin/env sh
-
-##############################################################################
-##
-## Gradle start up script for UN*X
-##
-##############################################################################
-
-# Attempt to set APP_HOME
-# Resolve links: $0 may be a link
-PRG="$0"
-# Need this for relative symlinks.
-while [ -h "$PRG" ] ; do
- ls=`ls -ld "$PRG"`
- link=`expr "$ls" : '.*-> \(.*\)$'`
- if expr "$link" : '/.*' > /dev/null; then
- PRG="$link"
- else
- PRG=`dirname "$PRG"`"/$link"
- fi
-done
-SAVED="`pwd`"
-cd "`dirname \"$PRG\"`/" >/dev/null
-APP_HOME="`pwd -P`"
-cd "$SAVED" >/dev/null
-
-APP_NAME="Gradle"
-APP_BASE_NAME=`basename "$0"`
-
-# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-DEFAULT_JVM_OPTS=""
-
-# Use the maximum available, or set MAX_FD != -1 to use that value.
-MAX_FD="maximum"
-
-warn () {
- echo "$*"
-}
-
-die () {
- echo
- echo "$*"
- echo
- exit 1
-}
-
-# OS specific support (must be 'true' or 'false').
-cygwin=false
-msys=false
-darwin=false
-nonstop=false
-case "`uname`" in
- CYGWIN* )
- cygwin=true
- ;;
- Darwin* )
- darwin=true
- ;;
- MINGW* )
- msys=true
- ;;
- NONSTOP* )
- nonstop=true
- ;;
-esac
-
-CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
-
-# Determine the Java command to use to start the JVM.
-if [ -n "$JAVA_HOME" ] ; then
- if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
- # IBM's JDK on AIX uses strange locations for the executables
- JAVACMD="$JAVA_HOME/jre/sh/java"
- else
- JAVACMD="$JAVA_HOME/bin/java"
- fi
- if [ ! -x "$JAVACMD" ] ; then
- die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
-
-Please set the JAVA_HOME variable in your environment to match the
-location of your Java installation."
- fi
-else
- JAVACMD="java"
- which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-
-Please set the JAVA_HOME variable in your environment to match the
-location of your Java installation."
-fi
-
-# Increase the maximum file descriptors if we can.
-if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
- MAX_FD_LIMIT=`ulimit -H -n`
- if [ $? -eq 0 ] ; then
- if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
- MAX_FD="$MAX_FD_LIMIT"
- fi
- ulimit -n $MAX_FD
- if [ $? -ne 0 ] ; then
- warn "Could not set maximum file descriptor limit: $MAX_FD"
- fi
- else
- warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
- fi
-fi
-
-# For Darwin, add options to specify how the application appears in the dock
-if $darwin; then
- GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
-fi
-
-# For Cygwin, switch paths to Windows format before running java
-if $cygwin ; then
- APP_HOME=`cygpath --path --mixed "$APP_HOME"`
- CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
- JAVACMD=`cygpath --unix "$JAVACMD"`
-
- # We build the pattern for arguments to be converted via cygpath
- ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
- SEP=""
- for dir in $ROOTDIRSRAW ; do
- ROOTDIRS="$ROOTDIRS$SEP$dir"
- SEP="|"
- done
- OURCYGPATTERN="(^($ROOTDIRS))"
- # Add a user-defined pattern to the cygpath arguments
- if [ "$GRADLE_CYGPATTERN" != "" ] ; then
- OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
- fi
- # Now convert the arguments - kludge to limit ourselves to /bin/sh
- i=0
- for arg in "$@" ; do
- CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
- CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
-
- if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
- eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
- else
- eval `echo args$i`="\"$arg\""
- fi
- i=$((i+1))
- done
- case $i in
- (0) set -- ;;
- (1) set -- "$args0" ;;
- (2) set -- "$args0" "$args1" ;;
- (3) set -- "$args0" "$args1" "$args2" ;;
- (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
- (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
- (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
- (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
- (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
- (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
- esac
-fi
-
-# Escape application args
-save () {
- for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
- echo " "
-}
-APP_ARGS=$(save "$@")
-
-# Collect all arguments for the java command, following the shell quoting and substitution rules
-eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
-
-# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong
-if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then
- cd "$(dirname "$0")"
-fi
-
-exec "$JAVACMD" "$@"
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/initial/contract-rest-service/gradlew.bat b/docs/src/test/bats/fixtures/gs-contract-rest/initial/contract-rest-service/gradlew.bat
deleted file mode 100644
index f9553162..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/initial/contract-rest-service/gradlew.bat
+++ /dev/null
@@ -1,84 +0,0 @@
-@if "%DEBUG%" == "" @echo off
-@rem ##########################################################################
-@rem
-@rem Gradle startup script for Windows
-@rem
-@rem ##########################################################################
-
-@rem Set local scope for the variables with windows NT shell
-if "%OS%"=="Windows_NT" setlocal
-
-set DIRNAME=%~dp0
-if "%DIRNAME%" == "" set DIRNAME=.
-set APP_BASE_NAME=%~n0
-set APP_HOME=%DIRNAME%
-
-@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-set DEFAULT_JVM_OPTS=
-
-@rem Find java.exe
-if defined JAVA_HOME goto findJavaFromJavaHome
-
-set JAVA_EXE=java.exe
-%JAVA_EXE% -version >NUL 2>&1
-if "%ERRORLEVEL%" == "0" goto init
-
-echo.
-echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:findJavaFromJavaHome
-set JAVA_HOME=%JAVA_HOME:"=%
-set JAVA_EXE=%JAVA_HOME%/bin/java.exe
-
-if exist "%JAVA_EXE%" goto init
-
-echo.
-echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:init
-@rem Get command-line arguments, handling Windows variants
-
-if not "%OS%" == "Windows_NT" goto win9xME_args
-
-:win9xME_args
-@rem Slurp the command line arguments.
-set CMD_LINE_ARGS=
-set _SKIP=2
-
-:win9xME_args_slurp
-if "x%~1" == "x" goto execute
-
-set CMD_LINE_ARGS=%*
-
-:execute
-@rem Setup the command line
-
-set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
-
-@rem Execute Gradle
-"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
-
-:end
-@rem End local scope for the variables with windows NT shell
-if "%ERRORLEVEL%"=="0" goto mainEnd
-
-:fail
-rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
-rem the _cmd.exe /c_ return code!
-if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
-exit /b 1
-
-:mainEnd
-if "%OS%"=="Windows_NT" endlocal
-
-:omega
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/initial/contract-rest-service/pom.xml b/docs/src/test/bats/fixtures/gs-contract-rest/initial/contract-rest-service/pom.xml
deleted file mode 100644
index ba2063d7..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/initial/contract-rest-service/pom.xml
+++ /dev/null
@@ -1,85 +0,0 @@
-
-
- 4.0.0
-
- com.example
- contract-rest-service
- 0.0.1-SNAPSHOT
- jar
-
-
- org.springframework.boot
- spring-boot-starter-parent
- 2.2.0.RC1
-
-
-
-
- UTF-8
- 1.8
- Hoxton.BUILD-SNAPSHOT
- 2.2.0.BUILD-SNAPSHOT
-
-
-
-
- org.springframework.boot
- spring-boot-starter-web
-
-
-
-
- org.springframework.boot
- spring-boot-starter-test
- test
-
-
-
-
-
-
- org.springframework.cloud
- spring-cloud-dependencies
- ${spring-cloud.version}
- pom
- import
-
-
-
-
-
-
-
- org.springframework.boot
- spring-boot-maven-plugin
-
-
-
-
-
-
-
-
-
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/initial/contract-rest-service/src/main/java/hello/ContractRestServiceApplication.java b/docs/src/test/bats/fixtures/gs-contract-rest/initial/contract-rest-service/src/main/java/hello/ContractRestServiceApplication.java
deleted file mode 100644
index 081ec994..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/initial/contract-rest-service/src/main/java/hello/ContractRestServiceApplication.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package hello;
-
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-
-@SpringBootApplication
-public class ContractRestServiceApplication {
-
- public static void main(String[] args) {
- SpringApplication.run(ContractRestServiceApplication.class, args);
- }
-}
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/initial/contract-rest-service/src/main/java/hello/Person.java b/docs/src/test/bats/fixtures/gs-contract-rest/initial/contract-rest-service/src/main/java/hello/Person.java
deleted file mode 100644
index 988259b9..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/initial/contract-rest-service/src/main/java/hello/Person.java
+++ /dev/null
@@ -1,40 +0,0 @@
-package hello;
-
-class Person {
-
- Person(Long id, String name, String surname) {
- this.id = id;
- this.name = name;
- this.surname = surname;
- }
-
- private Long id;
-
- private String name;
-
- private String surname;
-
- public Long getId() {
- return id;
- }
-
- public void setId(Long id) {
- this.id = id;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public String getSurname() {
- return surname;
- }
-
- public void setSurname(String surname) {
- this.surname = surname;
- }
-}
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/initial/contract-rest-service/src/main/java/hello/PersonRestController.java b/docs/src/test/bats/fixtures/gs-contract-rest/initial/contract-rest-service/src/main/java/hello/PersonRestController.java
deleted file mode 100644
index 7e13377a..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/initial/contract-rest-service/src/main/java/hello/PersonRestController.java
+++ /dev/null
@@ -1,20 +0,0 @@
-package hello;
-
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.RestController;
-
-@RestController
-class PersonRestController {
-
- private final PersonService personService;
-
- public PersonRestController(PersonService personService) {
- this.personService = personService;
- }
-
- @GetMapping("/person/{id}")
- public Person findPersonById(@PathVariable("id") Long id) {
- return personService.findPersonById(id);
- }
-}
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/initial/contract-rest-service/src/main/java/hello/PersonService.java b/docs/src/test/bats/fixtures/gs-contract-rest/initial/contract-rest-service/src/main/java/hello/PersonService.java
deleted file mode 100644
index fa70645f..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/initial/contract-rest-service/src/main/java/hello/PersonService.java
+++ /dev/null
@@ -1,23 +0,0 @@
-package hello;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import org.springframework.stereotype.Service;
-
-@Service
-class PersonService {
-
- private final Map personMap;
-
- public PersonService() {
- personMap = new HashMap<>();
- personMap.put(1L, new Person(1L, "Richard", "Gere"));
- personMap.put(2L, new Person(2L, "Emma", "Choplin"));
- personMap.put(3L, new Person(3L, "Anna", "Carolina"));
- }
-
- Person findPersonById(Long id) {
- return personMap.get(id);
- }
-}
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/initial/contract-rest-service/src/main/resources/application.properties b/docs/src/test/bats/fixtures/gs-contract-rest/initial/contract-rest-service/src/main/resources/application.properties
deleted file mode 100644
index 5ee314c7..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/initial/contract-rest-service/src/main/resources/application.properties
+++ /dev/null
@@ -1 +0,0 @@
-server.port=8000
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/initial/gradle/wrapper/gradle-wrapper.jar b/docs/src/test/bats/fixtures/gs-contract-rest/initial/gradle/wrapper/gradle-wrapper.jar
deleted file mode 100644
index 877f7c1f..00000000
Binary files a/docs/src/test/bats/fixtures/gs-contract-rest/initial/gradle/wrapper/gradle-wrapper.jar and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/initial/gradle/wrapper/gradle-wrapper.properties b/docs/src/test/bats/fixtures/gs-contract-rest/initial/gradle/wrapper/gradle-wrapper.properties
deleted file mode 100644
index ea55541d..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/initial/gradle/wrapper/gradle-wrapper.properties
+++ /dev/null
@@ -1,6 +0,0 @@
-#Wed Nov 15 10:48:25 CET 2017
-distributionBase=GRADLE_USER_HOME
-distributionPath=wrapper/dists
-zipStoreBase=GRADLE_USER_HOME
-zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-4.3.1-bin.zip
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/initial/gradlew b/docs/src/test/bats/fixtures/gs-contract-rest/initial/gradlew
deleted file mode 100755
index 9d82f789..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/initial/gradlew
+++ /dev/null
@@ -1,160 +0,0 @@
-#!/usr/bin/env bash
-
-##############################################################################
-##
-## Gradle start up script for UN*X
-##
-##############################################################################
-
-# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-DEFAULT_JVM_OPTS=""
-
-APP_NAME="Gradle"
-APP_BASE_NAME=`basename "$0"`
-
-# Use the maximum available, or set MAX_FD != -1 to use that value.
-MAX_FD="maximum"
-
-warn ( ) {
- echo "$*"
-}
-
-die ( ) {
- echo
- echo "$*"
- echo
- exit 1
-}
-
-# OS specific support (must be 'true' or 'false').
-cygwin=false
-msys=false
-darwin=false
-case "`uname`" in
- CYGWIN* )
- cygwin=true
- ;;
- Darwin* )
- darwin=true
- ;;
- MINGW* )
- msys=true
- ;;
-esac
-
-# Attempt to set APP_HOME
-# Resolve links: $0 may be a link
-PRG="$0"
-# Need this for relative symlinks.
-while [ -h "$PRG" ] ; do
- ls=`ls -ld "$PRG"`
- link=`expr "$ls" : '.*-> \(.*\)$'`
- if expr "$link" : '/.*' > /dev/null; then
- PRG="$link"
- else
- PRG=`dirname "$PRG"`"/$link"
- fi
-done
-SAVED="`pwd`"
-cd "`dirname \"$PRG\"`/" >/dev/null
-APP_HOME="`pwd -P`"
-cd "$SAVED" >/dev/null
-
-CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
-
-# Determine the Java command to use to start the JVM.
-if [ -n "$JAVA_HOME" ] ; then
- if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
- # IBM's JDK on AIX uses strange locations for the executables
- JAVACMD="$JAVA_HOME/jre/sh/java"
- else
- JAVACMD="$JAVA_HOME/bin/java"
- fi
- if [ ! -x "$JAVACMD" ] ; then
- die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
-
-Please set the JAVA_HOME variable in your environment to match the
-location of your Java installation."
- fi
-else
- JAVACMD="java"
- which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-
-Please set the JAVA_HOME variable in your environment to match the
-location of your Java installation."
-fi
-
-# Increase the maximum file descriptors if we can.
-if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
- MAX_FD_LIMIT=`ulimit -H -n`
- if [ $? -eq 0 ] ; then
- if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
- MAX_FD="$MAX_FD_LIMIT"
- fi
- ulimit -n $MAX_FD
- if [ $? -ne 0 ] ; then
- warn "Could not set maximum file descriptor limit: $MAX_FD"
- fi
- else
- warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
- fi
-fi
-
-# For Darwin, add options to specify how the application appears in the dock
-if $darwin; then
- GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
-fi
-
-# For Cygwin, switch paths to Windows format before running java
-if $cygwin ; then
- APP_HOME=`cygpath --path --mixed "$APP_HOME"`
- CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
- JAVACMD=`cygpath --unix "$JAVACMD"`
-
- # We build the pattern for arguments to be converted via cygpath
- ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
- SEP=""
- for dir in $ROOTDIRSRAW ; do
- ROOTDIRS="$ROOTDIRS$SEP$dir"
- SEP="|"
- done
- OURCYGPATTERN="(^($ROOTDIRS))"
- # Add a user-defined pattern to the cygpath arguments
- if [ "$GRADLE_CYGPATTERN" != "" ] ; then
- OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
- fi
- # Now convert the arguments - kludge to limit ourselves to /bin/sh
- i=0
- for arg in "$@" ; do
- CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
- CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
-
- if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
- eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
- else
- eval `echo args$i`="\"$arg\""
- fi
- i=$((i+1))
- done
- case $i in
- (0) set -- ;;
- (1) set -- "$args0" ;;
- (2) set -- "$args0" "$args1" ;;
- (3) set -- "$args0" "$args1" "$args2" ;;
- (4) set -- "$args0" "$args1" "$args2" "$args3" ;;
- (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
- (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
- (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
- (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
- (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
- esac
-fi
-
-# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
-function splitJvmOpts() {
- JVM_OPTS=("$@")
-}
-eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
-JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
-
-exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/initial/gradlew.bat b/docs/src/test/bats/fixtures/gs-contract-rest/initial/gradlew.bat
deleted file mode 100644
index 8a0b282a..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/initial/gradlew.bat
+++ /dev/null
@@ -1,90 +0,0 @@
-@if "%DEBUG%" == "" @echo off
-@rem ##########################################################################
-@rem
-@rem Gradle startup script for Windows
-@rem
-@rem ##########################################################################
-
-@rem Set local scope for the variables with windows NT shell
-if "%OS%"=="Windows_NT" setlocal
-
-@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
-set DEFAULT_JVM_OPTS=
-
-set DIRNAME=%~dp0
-if "%DIRNAME%" == "" set DIRNAME=.
-set APP_BASE_NAME=%~n0
-set APP_HOME=%DIRNAME%
-
-@rem Find java.exe
-if defined JAVA_HOME goto findJavaFromJavaHome
-
-set JAVA_EXE=java.exe
-%JAVA_EXE% -version >NUL 2>&1
-if "%ERRORLEVEL%" == "0" goto init
-
-echo.
-echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:findJavaFromJavaHome
-set JAVA_HOME=%JAVA_HOME:"=%
-set JAVA_EXE=%JAVA_HOME%/bin/java.exe
-
-if exist "%JAVA_EXE%" goto init
-
-echo.
-echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
-echo.
-echo Please set the JAVA_HOME variable in your environment to match the
-echo location of your Java installation.
-
-goto fail
-
-:init
-@rem Get command-line arguments, handling Windowz variants
-
-if not "%OS%" == "Windows_NT" goto win9xME_args
-if "%@eval[2+2]" == "4" goto 4NT_args
-
-:win9xME_args
-@rem Slurp the command line arguments.
-set CMD_LINE_ARGS=
-set _SKIP=2
-
-:win9xME_args_slurp
-if "x%~1" == "x" goto execute
-
-set CMD_LINE_ARGS=%*
-goto execute
-
-:4NT_args
-@rem Get arguments from the 4NT Shell from JP Software
-set CMD_LINE_ARGS=%$
-
-:execute
-@rem Setup the command line
-
-set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
-
-@rem Execute Gradle
-"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
-
-:end
-@rem End local scope for the variables with windows NT shell
-if "%ERRORLEVEL%"=="0" goto mainEnd
-
-:fail
-rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
-rem the _cmd.exe /c_ return code!
-if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
-exit /b 1
-
-:mainEnd
-if "%OS%"=="Windows_NT" endlocal
-
-:omega
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/initial/mvnw b/docs/src/test/bats/fixtures/gs-contract-rest/initial/mvnw
deleted file mode 100755
index 02217b1e..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/initial/mvnw
+++ /dev/null
@@ -1,233 +0,0 @@
-#!/bin/sh
-# ----------------------------------------------------------------------------
-# Licensed to the Apache Software Foundation (ASF) under one
-# or more contributor license agreements. See the NOTICE file
-# distributed with this work for additional information
-# regarding copyright ownership. The ASF licenses this file
-# to you under the Apache License, Version 2.0 (the
-# "License"); you may not use this file except in compliance
-# with the License. You may obtain a copy of the License at
-#
-# https://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing,
-# software distributed under the License is distributed on an
-# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-# KIND, either express or implied. See the License for the
-# specific language governing permissions and limitations
-# under the License.
-# ----------------------------------------------------------------------------
-
-# ----------------------------------------------------------------------------
-# Maven2 Start Up Batch script
-#
-# Required ENV vars:
-# ------------------
-# JAVA_HOME - location of a JDK home dir
-#
-# Optional ENV vars
-# -----------------
-# M2_HOME - location of maven2's installed home dir
-# MAVEN_OPTS - parameters passed to the Java VM when running Maven
-# e.g. to debug Maven itself, use
-# set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
-# MAVEN_SKIP_RC - flag to disable loading of mavenrc files
-# ----------------------------------------------------------------------------
-
-if [ -z "$MAVEN_SKIP_RC" ] ; then
-
- if [ -f /etc/mavenrc ] ; then
- . /etc/mavenrc
- fi
-
- if [ -f "$HOME/.mavenrc" ] ; then
- . "$HOME/.mavenrc"
- fi
-
-fi
-
-# OS specific support. $var _must_ be set to either true or false.
-cygwin=false;
-darwin=false;
-mingw=false
-case "`uname`" in
- CYGWIN*) cygwin=true ;;
- MINGW*) mingw=true;;
- Darwin*) darwin=true
- #
- # Look for the Apple JDKs first to preserve the existing behaviour, and then look
- # for the new JDKs provided by Oracle.
- #
- if [ -z "$JAVA_HOME" ] && [ -L /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK ] ; then
- #
- # Apple JDKs
- #
- export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK/Home
- fi
-
- if [ -z "$JAVA_HOME" ] && [ -L /System/Library/Java/JavaVirtualMachines/CurrentJDK ] ; then
- #
- # Apple JDKs
- #
- export JAVA_HOME=/System/Library/Java/JavaVirtualMachines/CurrentJDK/Contents/Home
- fi
-
- if [ -z "$JAVA_HOME" ] && [ -L "/Library/Java/JavaVirtualMachines/CurrentJDK" ] ; then
- #
- # Oracle JDKs
- #
- export JAVA_HOME=/Library/Java/JavaVirtualMachines/CurrentJDK/Contents/Home
- fi
-
- if [ -z "$JAVA_HOME" ] && [ -x "/usr/libexec/java_home" ]; then
- #
- # Apple JDKs
- #
- export JAVA_HOME=`/usr/libexec/java_home`
- fi
- ;;
-esac
-
-if [ -z "$JAVA_HOME" ] ; then
- if [ -r /etc/gentoo-release ] ; then
- JAVA_HOME=`java-config --jre-home`
- fi
-fi
-
-if [ -z "$M2_HOME" ] ; then
- ## resolve links - $0 may be a link to maven's home
- PRG="$0"
-
- # need this for relative symlinks
- while [ -h "$PRG" ] ; do
- ls=`ls -ld "$PRG"`
- link=`expr "$ls" : '.*-> \(.*\)$'`
- if expr "$link" : '/.*' > /dev/null; then
- PRG="$link"
- else
- PRG="`dirname "$PRG"`/$link"
- fi
- done
-
- saveddir=`pwd`
-
- M2_HOME=`dirname "$PRG"`/..
-
- # make it fully qualified
- M2_HOME=`cd "$M2_HOME" && pwd`
-
- cd "$saveddir"
- # echo Using m2 at $M2_HOME
-fi
-
-# For Cygwin, ensure paths are in UNIX format before anything is touched
-if $cygwin ; then
- [ -n "$M2_HOME" ] &&
- M2_HOME=`cygpath --unix "$M2_HOME"`
- [ -n "$JAVA_HOME" ] &&
- JAVA_HOME=`cygpath --unix "$JAVA_HOME"`
- [ -n "$CLASSPATH" ] &&
- CLASSPATH=`cygpath --path --unix "$CLASSPATH"`
-fi
-
-# For Migwn, ensure paths are in UNIX format before anything is touched
-if $mingw ; then
- [ -n "$M2_HOME" ] &&
- M2_HOME="`(cd "$M2_HOME"; pwd)`"
- [ -n "$JAVA_HOME" ] &&
- JAVA_HOME="`(cd "$JAVA_HOME"; pwd)`"
- # TODO classpath?
-fi
-
-if [ -z "$JAVA_HOME" ]; then
- javaExecutable="`which javac`"
- if [ -n "$javaExecutable" ] && ! [ "`expr \"$javaExecutable\" : '\([^ ]*\)'`" = "no" ]; then
- # readlink(1) is not available as standard on Solaris 10.
- readLink=`which readlink`
- if [ ! `expr "$readLink" : '\([^ ]*\)'` = "no" ]; then
- if $darwin ; then
- javaHome="`dirname \"$javaExecutable\"`"
- javaExecutable="`cd \"$javaHome\" && pwd -P`/javac"
- else
- javaExecutable="`readlink -f \"$javaExecutable\"`"
- fi
- javaHome="`dirname \"$javaExecutable\"`"
- javaHome=`expr "$javaHome" : '\(.*\)/bin'`
- JAVA_HOME="$javaHome"
- export JAVA_HOME
- fi
- fi
-fi
-
-if [ -z "$JAVACMD" ] ; then
- if [ -n "$JAVA_HOME" ] ; then
- if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
- # IBM's JDK on AIX uses strange locations for the executables
- JAVACMD="$JAVA_HOME/jre/sh/java"
- else
- JAVACMD="$JAVA_HOME/bin/java"
- fi
- else
- JAVACMD="`which java`"
- fi
-fi
-
-if [ ! -x "$JAVACMD" ] ; then
- echo "Error: JAVA_HOME is not defined correctly." >&2
- echo " We cannot execute $JAVACMD" >&2
- exit 1
-fi
-
-if [ -z "$JAVA_HOME" ] ; then
- echo "Warning: JAVA_HOME environment variable is not set."
-fi
-
-CLASSWORLDS_LAUNCHER=org.codehaus.plexus.classworlds.launcher.Launcher
-
-# For Cygwin, switch paths to Windows format before running java
-if $cygwin; then
- [ -n "$M2_HOME" ] &&
- M2_HOME=`cygpath --path --windows "$M2_HOME"`
- [ -n "$JAVA_HOME" ] &&
- JAVA_HOME=`cygpath --path --windows "$JAVA_HOME"`
- [ -n "$CLASSPATH" ] &&
- CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
-fi
-
-# traverses directory structure from process work directory to filesystem root
-# first directory with .mvn subdirectory is considered project base directory
-find_maven_basedir() {
- local basedir=$(pwd)
- local wdir=$(pwd)
- while [ "$wdir" != '/' ] ; do
- if [ -d "$wdir"/.mvn ] ; then
- basedir=$wdir
- break
- fi
- wdir=$(cd "$wdir/.."; pwd)
- done
- echo "${basedir}"
-}
-
-# concatenates all lines of a file
-concat_lines() {
- if [ -f "$1" ]; then
- echo "$(tr -s '\n' ' ' < "$1")"
- fi
-}
-
-export MAVEN_PROJECTBASEDIR=${MAVEN_BASEDIR:-$(find_maven_basedir)}
-MAVEN_OPTS="$(concat_lines "$MAVEN_PROJECTBASEDIR/.mvn/jvm.config") $MAVEN_OPTS"
-
-# Provide a "standardized" way to retrieve the CLI args that will
-# work with both Windows and non-Windows executions.
-MAVEN_CMD_LINE_ARGS="$MAVEN_CONFIG $@"
-export MAVEN_CMD_LINE_ARGS
-
-WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
-
-exec "$JAVACMD" \
- $MAVEN_OPTS \
- -classpath "$MAVEN_PROJECTBASEDIR/.mvn/wrapper/maven-wrapper.jar" \
- "-Dmaven.home=${M2_HOME}" "-Dmaven.multiModuleProjectDirectory=${MAVEN_PROJECTBASEDIR}" \
- ${WRAPPER_LAUNCHER} "$@"
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/initial/mvnw.cmd b/docs/src/test/bats/fixtures/gs-contract-rest/initial/mvnw.cmd
deleted file mode 100755
index 4b98b78c..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/initial/mvnw.cmd
+++ /dev/null
@@ -1,145 +0,0 @@
-@REM ----------------------------------------------------------------------------
-@REM Licensed to the Apache Software Foundation (ASF) under one
-@REM or more contributor license agreements. See the NOTICE file
-@REM distributed with this work for additional information
-@REM regarding copyright ownership. The ASF licenses this file
-@REM to you under the Apache License, Version 2.0 (the
-@REM "License"); you may not use this file except in compliance
-@REM with the License. You may obtain a copy of the License at
-@REM
-@REM https://www.apache.org/licenses/LICENSE-2.0
-@REM
-@REM Unless required by applicable law or agreed to in writing,
-@REM software distributed under the License is distributed on an
-@REM "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-@REM KIND, either express or implied. See the License for the
-@REM specific language governing permissions and limitations
-@REM under the License.
-@REM ----------------------------------------------------------------------------
-
-@REM ----------------------------------------------------------------------------
-@REM Maven2 Start Up Batch script
-@REM
-@REM Required ENV vars:
-@REM JAVA_HOME - location of a JDK home dir
-@REM
-@REM Optional ENV vars
-@REM M2_HOME - location of maven2's installed home dir
-@REM MAVEN_BATCH_ECHO - set to 'on' to enable the echoing of the batch commands
-@REM MAVEN_BATCH_PAUSE - set to 'on' to wait for a key stroke before ending
-@REM MAVEN_OPTS - parameters passed to the Java VM when running Maven
-@REM e.g. to debug Maven itself, use
-@REM set MAVEN_OPTS=-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000
-@REM MAVEN_SKIP_RC - flag to disable loading of mavenrc files
-@REM ----------------------------------------------------------------------------
-
-@REM Begin all REM lines with '@' in case MAVEN_BATCH_ECHO is 'on'
-@echo off
-@REM enable echoing my setting MAVEN_BATCH_ECHO to 'on'
-@if "%MAVEN_BATCH_ECHO%" == "on" echo %MAVEN_BATCH_ECHO%
-
-@REM set %HOME% to equivalent of $HOME
-if "%HOME%" == "" (set "HOME=%HOMEDRIVE%%HOMEPATH%")
-
-@REM Execute a user defined script before this one
-if not "%MAVEN_SKIP_RC%" == "" goto skipRcPre
-@REM check for pre script, once with legacy .bat ending and once with .cmd ending
-if exist "%HOME%\mavenrc_pre.bat" call "%HOME%\mavenrc_pre.bat"
-if exist "%HOME%\mavenrc_pre.cmd" call "%HOME%\mavenrc_pre.cmd"
-:skipRcPre
-
-@setlocal
-
-set ERROR_CODE=0
-
-@REM To isolate internal variables from possible post scripts, we use another setlocal
-@setlocal
-
-@REM ==== START VALIDATION ====
-if not "%JAVA_HOME%" == "" goto OkJHome
-
-echo.
-echo Error: JAVA_HOME not found in your environment. >&2
-echo Please set the JAVA_HOME variable in your environment to match the >&2
-echo location of your Java installation. >&2
-echo.
-goto error
-
-:OkJHome
-if exist "%JAVA_HOME%\bin\java.exe" goto init
-
-echo.
-echo Error: JAVA_HOME is set to an invalid directory. >&2
-echo JAVA_HOME = "%JAVA_HOME%" >&2
-echo Please set the JAVA_HOME variable in your environment to match the >&2
-echo location of your Java installation. >&2
-echo.
-goto error
-
-@REM ==== END VALIDATION ====
-
-:init
-
-set MAVEN_CMD_LINE_ARGS=%*
-
-@REM Find the project base dir, i.e. the directory that contains the folder ".mvn".
-@REM Fallback to current working directory if not found.
-
-set MAVEN_PROJECTBASEDIR=%MAVEN_BASEDIR%
-IF NOT "%MAVEN_PROJECTBASEDIR%"=="" goto endDetectBaseDir
-
-set EXEC_DIR=%CD%
-set WDIR=%EXEC_DIR%
-:findBaseDir
-IF EXIST "%WDIR%"\.mvn goto baseDirFound
-cd ..
-IF "%WDIR%"=="%CD%" goto baseDirNotFound
-set WDIR=%CD%
-goto findBaseDir
-
-:baseDirFound
-set MAVEN_PROJECTBASEDIR=%WDIR%
-cd "%EXEC_DIR%"
-goto endDetectBaseDir
-
-:baseDirNotFound
-set MAVEN_PROJECTBASEDIR=%EXEC_DIR%
-cd "%EXEC_DIR%"
-
-:endDetectBaseDir
-
-IF NOT EXIST "%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config" goto endReadAdditionalConfig
-
-@setlocal EnableExtensions EnableDelayedExpansion
-for /F "usebackq delims=" %%a in ("%MAVEN_PROJECTBASEDIR%\.mvn\jvm.config") do set JVM_CONFIG_MAVEN_PROPS=!JVM_CONFIG_MAVEN_PROPS! %%a
-@endlocal & set JVM_CONFIG_MAVEN_PROPS=%JVM_CONFIG_MAVEN_PROPS%
-
-:endReadAdditionalConfig
-
-SET MAVEN_JAVA_EXE="%JAVA_HOME%\bin\java.exe"
-
-set WRAPPER_JAR="".\.mvn\wrapper\maven-wrapper.jar""
-set WRAPPER_LAUNCHER=org.apache.maven.wrapper.MavenWrapperMain
-
-%MAVEN_JAVA_EXE% %JVM_CONFIG_MAVEN_PROPS% %MAVEN_OPTS% %MAVEN_DEBUG_OPTS% -classpath %WRAPPER_JAR% "-Dmaven.multiModuleProjectDirectory=%MAVEN_PROJECTBASEDIR%" %WRAPPER_LAUNCHER% %MAVEN_CMD_LINE_ARGS%
-if ERRORLEVEL 1 goto error
-goto end
-
-:error
-set ERROR_CODE=1
-
-:end
-@endlocal & set ERROR_CODE=%ERROR_CODE%
-
-if not "%MAVEN_SKIP_RC%" == "" goto skipRcPost
-@REM check for post script, once with legacy .bat ending and once with .cmd ending
-if exist "%HOME%\mavenrc_post.bat" call "%HOME%\mavenrc_post.bat"
-if exist "%HOME%\mavenrc_post.cmd" call "%HOME%\mavenrc_post.cmd"
-:skipRcPost
-
-@REM pause the script if MAVEN_BATCH_PAUSE is set to 'on'
-if "%MAVEN_BATCH_PAUSE%" == "on" pause
-
-if "%MAVEN_TERMINATE_CMD%" == "on" exit %ERROR_CODE%
-
-exit /B %ERROR_CODE%
\ No newline at end of file
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/initial/pom.xml b/docs/src/test/bats/fixtures/gs-contract-rest/initial/pom.xml
deleted file mode 100644
index edeb2a15..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/initial/pom.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
- 4.0.0
-
- org.springframework
- gs-contract-rest
- 0.1.0
-
- pom
-
-
- contract-rest-service
- contract-rest-client
-
-
-
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/initial/settings.gradle b/docs/src/test/bats/fixtures/gs-contract-rest/initial/settings.gradle
deleted file mode 100644
index 1008e67c..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/initial/settings.gradle
+++ /dev/null
@@ -1,4 +0,0 @@
-rootProject.name = 'gs-contract-rest'
-
-include 'contract-rest-service'
-include 'contract-rest-client'
diff --git a/docs/src/test/bats/fixtures/gs-contract-rest/test/run.sh b/docs/src/test/bats/fixtures/gs-contract-rest/test/run.sh
deleted file mode 100755
index 667a17d7..00000000
--- a/docs/src/test/bats/fixtures/gs-contract-rest/test/run.sh
+++ /dev/null
@@ -1,36 +0,0 @@
-#!/bin/sh
-cd $(dirname $0)
-
-cd ../complete
-
-mvn clean install
-ret=$?
-if [ $ret -ne 0 ]; then
- exit $ret
-fi
-rm -rf target
-
-./gradlew build
-ret=$?
-if [ $ret -ne 0 ]; then
- exit $ret
-fi
-rm -rf build
-
-cd ../initial
-
-mvn clean compile
-ret=$?
-if [ $ret -ne 0 ]; then
- exit $ret
-fi
-rm -rf target
-
-./gradlew compileJava
-ret=$?
-if [ $ret -ne 0 ]; then
- exit $ret
-fi
-rm -rf build
-
-exit
diff --git a/docs/src/test/bats/fixtures/spring-cloud-stream/.editorconfig b/docs/src/test/bats/fixtures/spring-cloud-stream/.editorconfig
deleted file mode 100644
index 0679d88a..00000000
--- a/docs/src/test/bats/fixtures/spring-cloud-stream/.editorconfig
+++ /dev/null
@@ -1,14 +0,0 @@
-# EditorConfig is awesome: http://EditorConfig.org
-
-# top-most EditorConfig file
-root = true
-
-[*]
-indent_style = tab
-indent_size = 4
-end_of_line = lf
-insert_final_newline = true
-
-[*.yml]
-indent_style = space
-indent_size = 2
diff --git a/docs/src/test/bats/fixtures/spring-cloud-stream/.gitignore b/docs/src/test/bats/fixtures/spring-cloud-stream/.gitignore
deleted file mode 100644
index 214f0bcb..00000000
--- a/docs/src/test/bats/fixtures/spring-cloud-stream/.gitignore
+++ /dev/null
@@ -1,27 +0,0 @@
-/application.yml
-/application.properties
-asciidoctor.css
-*~
-.#*
-*#
-target/
-build/
-bin/
-_site/
-.classpath
-.project
-.settings
-.springBeans
-.sts4-cache/
-.attach_pid*
-.DS_Store
-*.sw*
-*.iml
-*.ipr
-*.iws
-.idea/*
-.factorypath
-dump.rdb
-.apt_generated
-artifacts
-**/dependency-reduced-pom.xml
diff --git a/docs/src/test/bats/fixtures/spring-cloud-stream/.jdk8 b/docs/src/test/bats/fixtures/spring-cloud-stream/.jdk8
deleted file mode 100644
index e69de29b..00000000
diff --git a/docs/src/test/bats/fixtures/spring-cloud-stream/.mvn/jvm.config b/docs/src/test/bats/fixtures/spring-cloud-stream/.mvn/jvm.config
deleted file mode 100644
index 0e7dabef..00000000
--- a/docs/src/test/bats/fixtures/spring-cloud-stream/.mvn/jvm.config
+++ /dev/null
@@ -1 +0,0 @@
--Xmx1024m -XX:CICompilerCount=1 -XX:TieredStopAtLevel=1 -Djava.security.egd=file:/dev/./urandom
\ No newline at end of file
diff --git a/docs/src/test/bats/fixtures/spring-cloud-stream/.mvn/maven.config b/docs/src/test/bats/fixtures/spring-cloud-stream/.mvn/maven.config
deleted file mode 100644
index 3b8cf46e..00000000
--- a/docs/src/test/bats/fixtures/spring-cloud-stream/.mvn/maven.config
+++ /dev/null
@@ -1 +0,0 @@
--DaltSnapshotDeploymentRepository=repo.spring.io::default::https://repo.spring.io/libs-snapshot-local -P spring
diff --git a/docs/src/test/bats/fixtures/spring-cloud-stream/.mvn/wrapper/MavenWrapperDownloader.java b/docs/src/test/bats/fixtures/spring-cloud-stream/.mvn/wrapper/MavenWrapperDownloader.java
deleted file mode 100755
index 2e394d5b..00000000
--- a/docs/src/test/bats/fixtures/spring-cloud-stream/.mvn/wrapper/MavenWrapperDownloader.java
+++ /dev/null
@@ -1,110 +0,0 @@
-/*
-Licensed to the Apache Software Foundation (ASF) under one
-or more contributor license agreements. See the NOTICE file
-distributed with this work for additional information
-regarding copyright ownership. The ASF licenses this file
-to you under the Apache License, Version 2.0 (the
-"License"); you may not use this file except in compliance
-with the License. You may obtain a copy of the License at
-
- https://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing,
-software distributed under the License is distributed on an
-"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-KIND, either express or implied. See the License for the
-specific language governing permissions and limitations
-under the License.
-*/
-
-import java.net.*;
-import java.io.*;
-import java.nio.channels.*;
-import java.util.Properties;
-
-public class MavenWrapperDownloader {
-
- /**
- * Default URL to download the maven-wrapper.jar from, if no 'downloadUrl' is provided.
- */
- private static final String DEFAULT_DOWNLOAD_URL =
- "https://repo.maven.apache.org/maven2/io/takari/maven-wrapper/0.4.2/maven-wrapper-0.4.2.jar";
-
- /**
- * Path to the maven-wrapper.properties file, which might contain a downloadUrl property to
- * use instead of the default one.
- */
- private static final String MAVEN_WRAPPER_PROPERTIES_PATH =
- ".mvn/wrapper/maven-wrapper.properties";
-
- /**
- * Path where the maven-wrapper.jar will be saved to.
- */
- private static final String MAVEN_WRAPPER_JAR_PATH =
- ".mvn/wrapper/maven-wrapper.jar";
-
- /**
- * Name of the property which should be used to override the default download url for the wrapper.
- */
- private static final String PROPERTY_NAME_WRAPPER_URL = "wrapperUrl";
-
- public static void main(String args[]) {
- System.out.println("- Downloader started");
- File baseDirectory = new File(args[0]);
- System.out.println("- Using base directory: " + baseDirectory.getAbsolutePath());
-
- // If the maven-wrapper.properties exists, read it and check if it contains a custom
- // wrapperUrl parameter.
- File mavenWrapperPropertyFile = new File(baseDirectory, MAVEN_WRAPPER_PROPERTIES_PATH);
- String url = DEFAULT_DOWNLOAD_URL;
- if(mavenWrapperPropertyFile.exists()) {
- FileInputStream mavenWrapperPropertyFileInputStream = null;
- try {
- mavenWrapperPropertyFileInputStream = new FileInputStream(mavenWrapperPropertyFile);
- Properties mavenWrapperProperties = new Properties();
- mavenWrapperProperties.load(mavenWrapperPropertyFileInputStream);
- url = mavenWrapperProperties.getProperty(PROPERTY_NAME_WRAPPER_URL, url);
- } catch (IOException e) {
- System.out.println("- ERROR loading '" + MAVEN_WRAPPER_PROPERTIES_PATH + "'");
- } finally {
- try {
- if(mavenWrapperPropertyFileInputStream != null) {
- mavenWrapperPropertyFileInputStream.close();
- }
- } catch (IOException e) {
- // Ignore ...
- }
- }
- }
- System.out.println("- Downloading from: : " + url);
-
- File outputFile = new File(baseDirectory.getAbsolutePath(), MAVEN_WRAPPER_JAR_PATH);
- if(!outputFile.getParentFile().exists()) {
- if(!outputFile.getParentFile().mkdirs()) {
- System.out.println(
- "- ERROR creating output direcrory '" + outputFile.getParentFile().getAbsolutePath() + "'");
- }
- }
- System.out.println("- Downloading to: " + outputFile.getAbsolutePath());
- try {
- downloadFileFromURL(url, outputFile);
- System.out.println("Done");
- System.exit(0);
- } catch (Throwable e) {
- System.out.println("- Error downloading");
- e.printStackTrace();
- System.exit(1);
- }
- }
-
- private static void downloadFileFromURL(String urlString, File destination) throws Exception {
- URL website = new URL(urlString);
- ReadableByteChannel rbc;
- rbc = Channels.newChannel(website.openStream());
- FileOutputStream fos = new FileOutputStream(destination);
- fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
- fos.close();
- rbc.close();
- }
-
-}
diff --git a/docs/src/test/bats/fixtures/spring-cloud-stream/.mvn/wrapper/maven-wrapper.jar b/docs/src/test/bats/fixtures/spring-cloud-stream/.mvn/wrapper/maven-wrapper.jar
deleted file mode 100755
index 01e67997..00000000
Binary files a/docs/src/test/bats/fixtures/spring-cloud-stream/.mvn/wrapper/maven-wrapper.jar and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/spring-cloud-stream/.mvn/wrapper/maven-wrapper.properties b/docs/src/test/bats/fixtures/spring-cloud-stream/.mvn/wrapper/maven-wrapper.properties
deleted file mode 100755
index 00d32aab..00000000
--- a/docs/src/test/bats/fixtures/spring-cloud-stream/.mvn/wrapper/maven-wrapper.properties
+++ /dev/null
@@ -1 +0,0 @@
-distributionUrl=https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.5.4/apache-maven-3.5.4-bin.zip
\ No newline at end of file
diff --git a/docs/src/test/bats/fixtures/spring-cloud-stream/.settings.xml b/docs/src/test/bats/fixtures/spring-cloud-stream/.settings.xml
deleted file mode 100644
index 03645e8c..00000000
--- a/docs/src/test/bats/fixtures/spring-cloud-stream/.settings.xml
+++ /dev/null
@@ -1,68 +0,0 @@
-
-
-
-
- repo.spring.io
- ${env.CI_DEPLOY_USERNAME}
- ${env.CI_DEPLOY_PASSWORD}
-
-
-
-
-
- spring
-
- true
-
-
-
- spring-snapshots
- Spring Snapshots
- https://repo.spring.io/libs-snapshot-local
-
- true
-
-
-
- spring-milestones
- Spring Milestones
- https://repo.spring.io/libs-milestone-local
-
- false
-
-
-
- spring-releases
- Spring Releases
- https://repo.spring.io/release
-
- false
-
-
-
-
-
- spring-snapshots
- Spring Snapshots
- https://repo.spring.io/libs-snapshot-local
-
- true
-
-
-
- spring-milestones
- Spring Milestones
- https://repo.spring.io/libs-milestone-local
-
- false
-
-
-
-
-
-
diff --git a/docs/src/test/bats/fixtures/spring-cloud-stream/.springformat b/docs/src/test/bats/fixtures/spring-cloud-stream/.springformat
deleted file mode 100644
index e69de29b..00000000
diff --git a/docs/src/test/bats/fixtures/spring-cloud-stream/.travis.yml b/docs/src/test/bats/fixtures/spring-cloud-stream/.travis.yml
deleted file mode 100644
index a8f5dd8a..00000000
--- a/docs/src/test/bats/fixtures/spring-cloud-stream/.travis.yml
+++ /dev/null
@@ -1,16 +0,0 @@
-sudo: required
-cache:
- directories:
- - $HOME/.m2
-language: java
-jdk:
- - oraclejdk8
-install: true
-# The environment variable ${TRAVIS_PULL_REQUEST} is set to "false" when the build
-# is for a normal branch commit. When the build is for a pull request, it will
-# contain the pull request’s number.
-script:
- - '[ "${TRAVIS_PULL_REQUEST}" != "false" ] || ./mvnw package -Pspring,full -U -Dmaven.test.redirectTestOutputToFile=false'
- - '[ "${TRAVIS_PULL_REQUEST}" = "false" ] || ./mvnw package -Pspring -U -Dmaven.test.redirectTestOutputToFile=false'
-after_success:
- - bash <(curl -s https://codecov.io/bash)
diff --git a/docs/src/test/bats/fixtures/spring-cloud-stream/CODE_OF_CONDUCT.adoc b/docs/src/test/bats/fixtures/spring-cloud-stream/CODE_OF_CONDUCT.adoc
deleted file mode 100644
index f013d6f3..00000000
--- a/docs/src/test/bats/fixtures/spring-cloud-stream/CODE_OF_CONDUCT.adoc
+++ /dev/null
@@ -1,44 +0,0 @@
-= 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/]
diff --git a/docs/src/test/bats/fixtures/spring-cloud-stream/LICENSE b/docs/src/test/bats/fixtures/spring-cloud-stream/LICENSE
deleted file mode 100644
index 8f71f43f..00000000
--- a/docs/src/test/bats/fixtures/spring-cloud-stream/LICENSE
+++ /dev/null
@@ -1,202 +0,0 @@
- Apache License
- Version 2.0, January 2004
- http://www.apache.org/licenses/
-
- TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
- 1. Definitions.
-
- "License" shall mean the terms and conditions for use, reproduction,
- and distribution as defined by Sections 1 through 9 of this document.
-
- "Licensor" shall mean the copyright owner or entity authorized by
- the copyright owner that is granting the License.
-
- "Legal Entity" shall mean the union of the acting entity and all
- other entities that control, are controlled by, or are under common
- control with that entity. For the purposes of this definition,
- "control" means (i) the power, direct or indirect, to cause the
- direction or management of such entity, whether by contract or
- otherwise, or (ii) ownership of fifty percent (50%) or more of the
- outstanding shares, or (iii) beneficial ownership of such entity.
-
- "You" (or "Your") shall mean an individual or Legal Entity
- exercising permissions granted by this License.
-
- "Source" form shall mean the preferred form for making modifications,
- including but not limited to software source code, documentation
- source, and configuration files.
-
- "Object" form shall mean any form resulting from mechanical
- transformation or translation of a Source form, including but
- not limited to compiled object code, generated documentation,
- and conversions to other media types.
-
- "Work" shall mean the work of authorship, whether in Source or
- Object form, made available under the License, as indicated by a
- copyright notice that is included in or attached to the work
- (an example is provided in the Appendix below).
-
- "Derivative Works" shall mean any work, whether in Source or Object
- form, that is based on (or derived from) the Work and for which the
- editorial revisions, annotations, elaborations, or other modifications
- represent, as a whole, an original work of authorship. For the purposes
- of this License, Derivative Works shall not include works that remain
- separable from, or merely link (or bind by name) to the interfaces of,
- the Work and Derivative Works thereof.
-
- "Contribution" shall mean any work of authorship, including
- the original version of the Work and any modifications or additions
- to that Work or Derivative Works thereof, that is intentionally
- submitted to Licensor for inclusion in the Work by the copyright owner
- or by an individual or Legal Entity authorized to submit on behalf of
- the copyright owner. For the purposes of this definition, "submitted"
- means any form of electronic, verbal, or written communication sent
- to the Licensor or its representatives, including but not limited to
- communication on electronic mailing lists, source code control systems,
- and issue tracking systems that are managed by, or on behalf of, the
- Licensor for the purpose of discussing and improving the Work, but
- excluding communication that is conspicuously marked or otherwise
- designated in writing by the copyright owner as "Not a Contribution."
-
- "Contributor" shall mean Licensor and any individual or Legal Entity
- on behalf of whom a Contribution has been received by Licensor and
- subsequently incorporated within the Work.
-
- 2. Grant of Copyright License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- copyright license to reproduce, prepare Derivative Works of,
- publicly display, publicly perform, sublicense, and distribute the
- Work and such Derivative Works in Source or Object form.
-
- 3. Grant of Patent License. Subject to the terms and conditions of
- this License, each Contributor hereby grants to You a perpetual,
- worldwide, non-exclusive, no-charge, royalty-free, irrevocable
- (except as stated in this section) patent license to make, have made,
- use, offer to sell, sell, import, and otherwise transfer the Work,
- where such license applies only to those patent claims licensable
- by such Contributor that are necessarily infringed by their
- Contribution(s) alone or by combination of their Contribution(s)
- with the Work to which such Contribution(s) was submitted. If You
- institute patent litigation against any entity (including a
- cross-claim or counterclaim in a lawsuit) alleging that the Work
- or a Contribution incorporated within the Work constitutes direct
- or contributory patent infringement, then any patent licenses
- granted to You under this License for that Work shall terminate
- as of the date such litigation is filed.
-
- 4. Redistribution. You may reproduce and distribute copies of the
- Work or Derivative Works thereof in any medium, with or without
- modifications, and in Source or Object form, provided that You
- meet the following conditions:
-
- (a) You must give any other recipients of the Work or
- Derivative Works a copy of this License; and
-
- (b) You must cause any modified files to carry prominent notices
- stating that You changed the files; and
-
- (c) You must retain, in the Source form of any Derivative Works
- that You distribute, all copyright, patent, trademark, and
- attribution notices from the Source form of the Work,
- excluding those notices that do not pertain to any part of
- the Derivative Works; and
-
- (d) If the Work includes a "NOTICE" text file as part of its
- distribution, then any Derivative Works that You distribute must
- include a readable copy of the attribution notices contained
- within such NOTICE file, excluding those notices that do not
- pertain to any part of the Derivative Works, in at least one
- of the following places: within a NOTICE text file distributed
- as part of the Derivative Works; within the Source form or
- documentation, if provided along with the Derivative Works; or,
- within a display generated by the Derivative Works, if and
- wherever such third-party notices normally appear. The contents
- of the NOTICE file are for informational purposes only and
- do not modify the License. You may add Your own attribution
- notices within Derivative Works that You distribute, alongside
- or as an addendum to the NOTICE text from the Work, provided
- that such additional attribution notices cannot be construed
- as modifying the License.
-
- You may add Your own copyright statement to Your modifications and
- may provide additional or different license terms and conditions
- for use, reproduction, or distribution of Your modifications, or
- for any such Derivative Works as a whole, provided Your use,
- reproduction, and distribution of the Work otherwise complies with
- the conditions stated in this License.
-
- 5. Submission of Contributions. Unless You explicitly state otherwise,
- any Contribution intentionally submitted for inclusion in the Work
- by You to the Licensor shall be under the terms and conditions of
- this License, without any additional terms or conditions.
- Notwithstanding the above, nothing herein shall supersede or modify
- the terms of any separate license agreement you may have executed
- with Licensor regarding such Contributions.
-
- 6. Trademarks. This License does not grant permission to use the trade
- names, trademarks, service marks, or product names of the Licensor,
- except as required for reasonable and customary use in describing the
- origin of the Work and reproducing the content of the NOTICE file.
-
- 7. Disclaimer of Warranty. Unless required by applicable law or
- agreed to in writing, Licensor provides the Work (and each
- Contributor provides its Contributions) on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
- implied, including, without limitation, any warranties or conditions
- of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
- PARTICULAR PURPOSE. You are solely responsible for determining the
- appropriateness of using or redistributing the Work and assume any
- risks associated with Your exercise of permissions under this License.
-
- 8. Limitation of Liability. In no event and under no legal theory,
- whether in tort (including negligence), contract, or otherwise,
- unless required by applicable law (such as deliberate and grossly
- negligent acts) or agreed to in writing, shall any Contributor be
- liable to You for damages, including any direct, indirect, special,
- incidental, or consequential damages of any character arising as a
- result of this License or out of the use or inability to use the
- Work (including but not limited to damages for loss of goodwill,
- work stoppage, computer failure or malfunction, or any and all
- other commercial damages or losses), even if such Contributor
- has been advised of the possibility of such damages.
-
- 9. Accepting Warranty or Additional Liability. While redistributing
- the Work or Derivative Works thereof, You may choose to offer,
- and charge a fee for, acceptance of support, warranty, indemnity,
- or other liability obligations and/or rights consistent with this
- License. However, in accepting such obligations, You may act only
- on Your own behalf and on Your sole responsibility, not on behalf
- of any other Contributor, and only if You agree to indemnify,
- defend, and hold each Contributor harmless for any liability
- incurred by, or claims asserted against, such Contributor by reason
- of your accepting any such warranty or additional liability.
-
- END OF TERMS AND CONDITIONS
-
- APPENDIX: How to apply the Apache License to your work.
-
- To apply the Apache License to your work, attach the following
- boilerplate notice, with the fields enclosed by brackets "{}"
- replaced with your own identifying information. (Don't include
- the brackets!) The text should be enclosed in the appropriate
- comment syntax for the file format. We also recommend that a
- file or class name and description of purpose be included on the
- same "printed page" as the copyright notice for easier
- identification within third-party archives.
-
- Copyright {yyyy} {name of copyright owner}
-
- Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License.
- You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an "AS IS" BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
-
diff --git a/docs/src/test/bats/fixtures/spring-cloud-stream/README.adoc b/docs/src/test/bats/fixtures/spring-cloud-stream/README.adoc
deleted file mode 100644
index 967946c6..00000000
--- a/docs/src/test/bats/fixtures/spring-cloud-stream/README.adoc
+++ /dev/null
@@ -1,334 +0,0 @@
-////
-DO NOT EDIT THIS FILE. IT WAS GENERATED.
-Manual changes to this file will be lost when it is generated again.
-Edit the files in the src/main/asciidoc/ directory instead.
-////
-
-:jdkversion: 1.8
-:github-tag: master
-:github-repo: spring-cloud/spring-cloud-stream
-
-:github-raw: https://raw.githubusercontent.com/{github-repo}/{github-tag}
-:github-code: https://github.com/{github-repo}/tree/{github-tag}
-
-image::https://circleci.com/gh/spring-cloud/spring-cloud-stream.svg?style=svg["CircleCI", link="https://circleci.com/gh/spring-cloud/spring-cloud-stream"]
-image::https://codecov.io/gh/spring-cloud/spring-cloud-stream/branch/{github-tag}/graph/badge.svg["codecov", link="https://codecov.io/gh/spring-cloud/spring-cloud-stream"]
-image::https://badges.gitter.im/spring-cloud/spring-cloud-stream.svg[Gitter, link="https://gitter.im/spring-cloud/spring-cloud-stream?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge"]
-
-// ======================================================================================
-
-= Preface
-=== A Brief History of Spring's Data Integration Journey
-
-Spring's journey on Data Integration started with https://projects.spring.io/spring-integration/[Spring Integration]. With its programming model, it provided a consistent developer experience to build applications that can embrace http://www.enterpriseintegrationpatterns.com/[Enterprise Integration Patterns] to connect with external systems such as, databases, message brokers, and among others.
-
-Fast forward to the cloud-era, where microservices have become prominent in the enterprise setting. https://projects.spring.io/spring-boot/[Spring Boot] transformed the way how developers built Applications. With Spring's programming model and the runtime responsibilities handled by Spring Boot, it became seamless to develop stand-alone, production-grade Spring-based microservices.
-
-To extend this to Data Integration workloads, Spring Integration and Spring Boot were put together into a new project. Spring Cloud Stream was born.
-
-[%hardbreaks]
-With Spring Cloud Stream, developers can:
-* Build, test, iterate, and deploy data-centric applications in isolation.
-* Apply modern microservices architecture patterns, including composition through messaging.
-* Decouple application responsibilities with event-centric thinking. An event can represent something that has happened in time, to which the downstream consumer applications can react without knowing where it originated or the producer's identity.
-* Port the business logic onto message brokers (such as RabbitMQ, Apache Kafka, Amazon Kinesis).
-* Interoperate between channel-based and non-channel-based application binding scenarios to support stateless and stateful computations by using Project Reactor's Flux and Kafka Streams APIs.
-* Rely on the framework's automatic content-type support for common use-cases. Extending to different data conversion types is possible.
-
-=== Quick Start
-
-You can try Spring Cloud Stream in less then 5 min even before you jump into any details by following this three-step guide.
-
-We show you how to create a Spring Cloud Stream application that receives messages coming from the messaging middleware of your choice (more on this later) and logs received messages to the console.
-We call it `LoggingConsumer`.
-While not very practical, it provides a good introduction to some of the main concepts
-and abstractions, making it easier to digest the rest of this user guide.
-
-The three steps are as follows:
-
-. <>
-. <>
-. <>
-
-[[spring-cloud-stream-preface-creating-sample-application]]
-==== Creating a Sample Application by Using Spring Initializr
-To get started, visit the https://start.spring.io[Spring Initializr]. From there, you can generate our `LoggingConsumer` application. To do so:
-
-. In the *Dependencies* section, start typing `stream`.
-When the "`Cloud Stream`" option should appears, select it.
-. Start typing either 'kafka' or 'rabbit'.
-. Select "`Kafka`" or "`RabbitMQ`".
-+
-Basically, you choose the messaging middleware to which your application binds.
-We recommend using the one you have already installed or feel more comfortable with installing and running.
-Also, as you can see from the Initilaizer screen, there are a few other options you can choose.
-For example, you can choose Gradle as your build tool instead of Maven (the default).
-. In the *Artifact* field, type 'logging-consumer'.
-+
-The value of the *Artifact* field becomes the application name.
-If you chose RabbitMQ for the middleware, your Spring Initializr should now be as follows:
-
-[%hardbreaks]
-[%hardbreaks]
-[%hardbreaks]
-image::{github-raw}/docs/src/main/asciidoc/images/spring-initializr.png[align="center"]
-
-[%hardbreaks]
-[%hardbreaks]
-
-. Click the *Generate Project* button.
-+
-Doing so downloads the zipped version of the generated project to your hard drive.
-. Unzip the file into the folder you want to use as your project directory.
-
-TIP: We encourage you to explore the many possibilities available in the Spring Initializr.
-It lets you create many different kinds of Spring applications.
-
-[[spring-cloud-stream-preface-importing-project]]
-==== Importing the Project into Your IDE
-
-Now you can import the project into your IDE.
-Keep in mind that, depending on the IDE, you may need to follow a specific import procedure.
-For example, depending on how the project was generated (Maven or Gradle), you may need to follow specific import procedure (for example, in Eclipse or STS, you need to use File -> Import -> Maven -> Existing Maven Project).
-
-Once imported, the project must have no errors of any kind. Also, `src/main/java` should contain `com.example.loggingconsumer.LoggingConsumerApplication`.
-
-Technically, at this point, you can run the application's main class.
-It is already a valid Spring Boot application.
-However, it does not do anything, so we want to add some code.
-
-[[spring-cloud-stream-preface-adding-message-handler]]
-==== Adding a Message Handler, Building, and Running
-
-Modify the `com.example.loggingconsumer.LoggingConsumerApplication` class to look as follows:
-
-[source, java]
-----
-@SpringBootApplication
-@EnableBinding(Sink.class)
-public class LoggingConsumerApplication {
-
- public static void main(String[] args) {
- SpringApplication.run(LoggingConsumerApplication.class, args);
- }
-
- @StreamListener(Sink.INPUT)
- public void handle(Person person) {
- System.out.println("Received: " + person);
- }
-
- public static class Person {
- private String name;
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public String toString() {
- return this.name;
- }
- }
-}
-----
-
-As you can see from the preceding listing:
-
-* We have enabled `Sink` binding (input-no-output) by using `@EnableBinding(Sink.class)`.
-Doing so signals to the framework to initiate binding to the messaging middleware, where it automatically creates the destination (that is, queue, topic, and others) that are bound to the `Sink.INPUT` channel.
-* We have added a `handler` method to receive incoming messages of type `Person`.
-Doing so lets you see one of the core features of the framework: It tries to automatically convert incoming message payloads to type `Person`.
-
-You now have a fully functional Spring Cloud Stream application that does listens for messages.
-From here, for simplicity, we assume you selected RabbitMQ in <>.
-Assuming you have RabbitMQ installed and running, you can start the application by running its `main` method in your IDE.
-
-You should see following output:
-
-[source]
-----
- --- [ main] c.s.b.r.p.RabbitExchangeQueueProvisioner : declaring queue for inbound: input.anonymous.CbMIwdkJSBO1ZoPDOtHtCg, bound to: input
- --- [ main] o.s.a.r.c.CachingConnectionFactory : Attempting to connect to: [localhost:5672]
- --- [ main] o.s.a.r.c.CachingConnectionFactory : Created new connection: rabbitConnectionFactory#2a3a299:0/SimpleConnection@66c83fc8. . .
- . . .
- --- [ main] o.s.i.a.i.AmqpInboundChannelAdapter : started inbound.input.anonymous.CbMIwdkJSBO1ZoPDOtHtCg
- . . .
- --- [ main] c.e.l.LoggingConsumerApplication : Started LoggingConsumerApplication in 2.531 seconds (JVM running for 2.897)
-----
-
-Go to the RabbitMQ management console or any other RabbitMQ client and send a message to `input.anonymous.CbMIwdkJSBO1ZoPDOtHtCg`.
-The `anonymous.CbMIwdkJSBO1ZoPDOtHtCg` part represents the group name and is generated, so it is bound to be different in your environment.
-For something more predictable, you can use an explicit group name by setting `spring.cloud.stream.bindings.input.group=hello` (or whatever name you like).
-
-The contents of the message should be a JSON representation of the `Person` class, as follows:
-
- {"name":"Sam Spade"}
-
-Then, in your console, you should see:
-
-`Received: Sam Spade`
-
-You can also build and package your application into a boot jar (by using `./mvnw clean install`) and run the built JAR by using the `java -jar` command.
-
-Now you have a working (albeit very basic) Spring Cloud Stream application.
-
-== What's New in 2.2?
-Spring Cloud Stream introduces a number of new features, enhancements, and changes in addition to the once already introduced in
-https://docs.spring.io/spring-cloud-stream/docs/Elmhurst.SR2/reference/htmlsingle/#_what_s_new_in_2_0[version 2.0]
-
-
-The following sections outline the most notable ones:
-
-* <>
-* <>
-
-[[spring-cloud-stream-preface-new-features]]
-=== New Features and Components
-
-
-[[spring-cloud-stream-preface-notable-enhancements]]
-=== Notable Enhancements
-
-
-[[spring-cloud-stream-preface-notable-deprecations]]
-=== Notable Deprecations
-
-As of version 2.2, the following items have been deprecated:
-
-- The spring-cloud-stream-reactive module is deprecated in favor of native support
- via <> programming model.
-
-=== Notes on migrating from 1.x to 2.x?
-- Due to the improvements in content-type negotiation, the `originalContentType` header is not used (ignored) since 2.x and only exists for maintaining compatibility with 1.x versions
-- Introduction of `@StreamRetryTemplate` qualifier. While configuring custom instance of the `RetryTemplate` and to avoid conflicts you must qualify the instance of such `RetryTemplate` with this qualifier. See <> for more details.
-
-= Appendices
-[appendix]
-[[building]]
-== Building
-
-:jdkversion: 1.8
-
-=== Basic Compile and Test
-
-To build the source you will need to install JDK {jdkversion}.
-
-The build uses the Maven wrapper so you don't have to install a specific
-version of Maven. To enable the tests for Redis, Rabbit, and Kafka bindings you
-should have those servers running before building. See below for more
-information on running the servers.
-
-The main build command is
-
-----
-$ ./mvnw clean install
-----
-
-You can also add '-DskipTests' if you like, to avoid running the tests.
-
-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.
-
-
-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.
-
-=== Documentation
-
-There is a "full" profile that will generate documentation.
-
-=== 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/[m2eclipe] eclipse plugin for maven support. Other IDEs and tools
-should also work without issue.
-
-==== Importing into eclipse with m2eclipse
-We recommend the http://eclipse.org/m2e/[m2eclipe] eclipse plugin when working with
-eclipse. If you don't already have m2eclipse installed it is available from the "eclipse
-marketplace".
-
-Unfortunately m2e does not yet support Maven 3.3, so once the projects
-are imported into Eclipse you will also need to tell m2eclipse to use
-the `.settings.xml` file for the projects. If you do not do this you
-may see many different errors related to the POMs in the
-projects. Open your Eclipse preferences, expand the Maven
-preferences, and select User Settings. In the User Settings field
-click Browse and navigate to the Spring Cloud project you imported
-selecting the `.settings.xml` file in that project. Click Apply and
-then OK to save the preference changes.
-
-NOTE: Alternatively you can copy the repository settings from https://github.com/spring-cloud/spring-cloud-build/blob/master/.settings.xml[`.settings.xml`] into your own `~/.m2/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.
-
-[[contributing]]
-== Contributing
-
-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://support.springsource.com/spring_committer_signup[contributor's 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 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://github.com/spring-cloud/build/tree/master/eclipse-coding-conventions.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).
-
-
-// ======================================================================================
\ No newline at end of file
diff --git a/docs/src/test/bats/fixtures/spring-cloud-stream/docs/.jdk8 b/docs/src/test/bats/fixtures/spring-cloud-stream/docs/.jdk8
deleted file mode 100644
index e69de29b..00000000
diff --git a/docs/src/test/bats/fixtures/spring-cloud-stream/docs/pom.xml b/docs/src/test/bats/fixtures/spring-cloud-stream/docs/pom.xml
deleted file mode 100644
index 0f5e1cf4..00000000
--- a/docs/src/test/bats/fixtures/spring-cloud-stream/docs/pom.xml
+++ /dev/null
@@ -1,326 +0,0 @@
-
-
- 4.0.0
- spring-cloud-stream-core-docs
-
- org.springframework.cloud
- spring-cloud-stream-parent
- Horsham.BUILD-SNAPSHOT
-
- pom
- spring-cloud-stream-core-docs
- Spring Cloud Stream Core Documentation
-
- home
- ${basedir}/..
- 0.1.1.RELEASE
- 0.1.0.RELEASE
-
- 1.5.0-alpha.16
-
-
-
- docs
-
-
-
- org.apache.maven.plugins
- maven-dependency-plugin
- ${maven-dependency-plugin.version}
- false
-
-
- unpack-docs
- generate-resources
-
- unpack
-
-
-
-
- org.springframework.cloud
-
- spring-cloud-build-docs
-
- ${spring-cloud-build.version}
-
- sources
- jar
- false
- ${docs.resources.dir}
-
-
-
-
-
-
- unpack-docs-resources
- generate-resources
-
- unpack
-
-
-
-
- io.spring.docresources
- spring-doc-resources
- ${spring-doc-resources.version}
- zip
- true
- ${project.build.directory}/refdocs/
-
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-resources-plugin
-
-
- copy-asciidoc-resources
- generate-resources
-
- copy-resources
-
-
- ${project.build.directory}/refdocs/
-
-
- src/main/asciidoc
- false
-
- ghpages.sh
-
-
-
-
-
-
-
-
-
- org.asciidoctor
- asciidoctor-maven-plugin
- ${asciidoctor-maven-plugin.version}
- false
-
-
- io.spring.asciidoctor
- spring-asciidoctor-extensions
- ${spring-asciidoctor-extensions.version}
-
-
- org.asciidoctor
- asciidoctorj-pdf
- ${asciidoctorj-pdf.version}
-
-
-
- ${project.build.directory}/refdocs/
-
- ${project.version}
- http://cloud.spring.io/
-
-
-
-
-
-
-
- generate-html-documentation
- prepare-package
-
- process-asciidoc
-
-
- html5
- highlight.js
- book
-
- // these attributes are required to use the doc resources
- shared
- css/
- spring.css
- true
- font
- js/highlight
- atom-one-dark-reasonable
- true
-
- left
- 4
- ${project.version}
- true
-
-
-
-
- generate-docbook
- none
-
- process-asciidoc
-
-
-
- generate-index
- none
-
- process-asciidoc
-
-
-
-
-
-
-
- org.apache.maven.plugins
- maven-antrun-plugin
- ${maven-antrun-plugin.version}
-
-
- ant-contrib
- ant-contrib
- 1.0b3
-
-
- ant
- ant
-
-
-
-
- org.apache.ant
- ant-nodeps
- 1.8.1
-
-
- org.tigris.antelope
- antelopetasks
- 3.2.10
-
-
- org.jruby
- jruby-complete
- 1.7.17
-
-
- org.asciidoctor
- asciidoctorj
- 1.5.8
-
-
-
-
- readme
- process-resources
-
- run
-
-
-
-
-
-
-
-
-
-
-
-
- assert-no-unresolved-links
- prepare-package
-
- run
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- setup-maven-properties
- validate
-
- run
-
-
- true
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- copy-css
- none
-
- run
-
-
-
- generate-documentation-index
- none
-
- run
-
-
-
- copy-generated-html
- none
-
- run
-
-
-
-
-
-
-
- org.codehaus.mojo
- build-helper-maven-plugin
- false
-
-
-
-
-
-
diff --git a/docs/src/test/bats/fixtures/spring-cloud-stream/docs/src/main/asciidoc/README.adoc b/docs/src/test/bats/fixtures/spring-cloud-stream/docs/src/main/asciidoc/README.adoc
deleted file mode 100644
index 235d8e2e..00000000
--- a/docs/src/test/bats/fixtures/spring-cloud-stream/docs/src/main/asciidoc/README.adoc
+++ /dev/null
@@ -1,146 +0,0 @@
-:jdkversion: 1.8
-:github-tag: master
-:github-repo: spring-cloud/spring-cloud-stream
-
-:github-raw: https://raw.githubusercontent.com/{github-repo}/{github-tag}
-:github-code: https://github.com/{github-repo}/tree/{github-tag}
-
-image::https://circleci.com/gh/spring-cloud/spring-cloud-stream.svg?style=svg["CircleCI", link="https://circleci.com/gh/spring-cloud/spring-cloud-stream"]
-image::https://codecov.io/gh/spring-cloud/spring-cloud-stream/branch/{github-tag}/graph/badge.svg["codecov", link="https://codecov.io/gh/spring-cloud/spring-cloud-stream"]
-image::https://badges.gitter.im/spring-cloud/spring-cloud-stream.svg[Gitter, link="https://gitter.im/spring-cloud/spring-cloud-stream?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge"]
-
-// ======================================================================================
-
-= Preface
-include::preface.adoc[]
-
-= Appendices
-[appendix]
-[[building]]
-== Building
-
-:jdkversion: 1.8
-
-=== Basic Compile and Test
-
-To build the source you will need to install JDK {jdkversion}.
-
-The build uses the Maven wrapper so you don't have to install a specific
-version of Maven. To enable the tests for Redis, Rabbit, and Kafka bindings you
-should have those servers running before building. See below for more
-information on running the servers.
-
-The main build command is
-
-----
-$ ./mvnw clean install
-----
-
-You can also add '-DskipTests' if you like, to avoid running the tests.
-
-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.
-
-
-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.
-
-=== Documentation
-
-There is a "full" profile that will generate documentation.
-
-=== 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/[m2eclipe] eclipse plugin for maven support. Other IDEs and tools
-should also work without issue.
-
-==== Importing into eclipse with m2eclipse
-We recommend the http://eclipse.org/m2e/[m2eclipe] eclipse plugin when working with
-eclipse. If you don't already have m2eclipse installed it is available from the "eclipse
-marketplace".
-
-Unfortunately m2e does not yet support Maven 3.3, so once the projects
-are imported into Eclipse you will also need to tell m2eclipse to use
-the `.settings.xml` file for the projects. If you do not do this you
-may see many different errors related to the POMs in the
-projects. Open your Eclipse preferences, expand the Maven
-preferences, and select User Settings. In the User Settings field
-click Browse and navigate to the Spring Cloud project you imported
-selecting the `.settings.xml` file in that project. Click Apply and
-then OK to save the preference changes.
-
-NOTE: Alternatively you can copy the repository settings from https://github.com/spring-cloud/spring-cloud-build/blob/master/.settings.xml[`.settings.xml`] into your own `~/.m2/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.
-
-[[contributing]]
-== Contributing
-
-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://support.springsource.com/spring_committer_signup[contributor's 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 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://github.com/spring-cloud/build/tree/master/eclipse-coding-conventions.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/src/test/bats/fixtures/spring-cloud-stream/docs/src/main/asciidoc/binders.adoc b/docs/src/test/bats/fixtures/spring-cloud-stream/docs/src/main/asciidoc/binders.adoc
deleted file mode 100644
index db895eac..00000000
--- a/docs/src/test/bats/fixtures/spring-cloud-stream/docs/src/main/asciidoc/binders.adoc
+++ /dev/null
@@ -1,13 +0,0 @@
-*{spring-cloud-stream-version}*
-
-[[binders]]
-== Binder Implementations
-
-The following is the list of available binder implementations
-
-* https://cloud.spring.io/spring-cloud-stream-binder-rabbit/[RabbitMQ]
-* https://cloud.spring.io/spring-cloud-stream-binder-kafka/[Apache Kafka]
-* https://github.com/spring-cloud/spring-cloud-stream-binder-aws-kinesis[Amazon Kinesis]
-* https://github.com/spring-cloud/spring-cloud-gcp/tree/master/spring-cloud-gcp-pubsub-stream-binder[Google PubSub _(partner maintained)_]
-* https://github.com/SolaceProducts/spring-cloud-stream-binder-solace[Solace PubSub+ _(partner maintained)_]
-* https://github.com/Microsoft/spring-cloud-azure/tree/master/spring-cloud-azure-eventhub-stream-binder[Azure Event Hubs _(partner maintained)_]
diff --git a/docs/src/test/bats/fixtures/spring-cloud-stream/docs/src/main/asciidoc/ghpages.sh b/docs/src/test/bats/fixtures/spring-cloud-stream/docs/src/main/asciidoc/ghpages.sh
deleted file mode 100755
index 2562c717..00000000
--- a/docs/src/test/bats/fixtures/spring-cloud-stream/docs/src/main/asciidoc/ghpages.sh
+++ /dev/null
@@ -1,330 +0,0 @@
-#!/bin/bash -x
-
-set -e
-
-# Set default props like MAVEN_PATH, ROOT_FOLDER etc.
-function set_default_props() {
- # The script should be executed from the root folder
- ROOT_FOLDER=`pwd`
- echo "Current folder is ${ROOT_FOLDER}"
-
- if [[ ! -e "${ROOT_FOLDER}/.git" ]]; then
- echo "You're not in the root folder of the project!"
- exit 1
- fi
-
- # Prop that will let commit the changes
- COMMIT_CHANGES="no"
- MAVEN_PATH=${MAVEN_PATH:-}
- echo "Path to Maven is [${MAVEN_PATH}]"
- REPO_NAME=${PWD##*/}
- echo "Repo name is [${REPO_NAME}]"
- SPRING_CLOUD_STATIC_REPO=${SPRING_CLOUD_STATIC_REPO:-git@github.com:spring-cloud/spring-cloud-static.git}
- echo "Spring Cloud Static repo is [${SPRING_CLOUD_STATIC_REPO}"
-}
-
-# Check if gh-pages exists and docs have been built
-function check_if_anything_to_sync() {
- git remote set-url --push origin `git config remote.origin.url | sed -e 's/^git:/https:/'`
-
- if ! (git remote set-branches --add origin gh-pages && git fetch -q); then
- echo "No gh-pages, so not syncing"
- exit 0
- fi
-
- if ! [ -d docs/target/generated-docs ] && ! [ "${BUILD}" == "yes" ]; then
- echo "No gh-pages sources in docs/target/generated-docs, so not syncing"
- exit 0
- fi
-}
-
-function retrieve_current_branch() {
- # Code getting the name of the current branch. For master we want to publish as we did until now
- # https://stackoverflow.com/questions/1593051/how-to-programmatically-determine-the-current-checked-out-git-branch
- # If there is a branch already passed will reuse it - otherwise will try to find it
- CURRENT_BRANCH=${BRANCH}
- if [[ -z "${CURRENT_BRANCH}" ]] ; then
- CURRENT_BRANCH=$(git symbolic-ref -q HEAD)
- CURRENT_BRANCH=${CURRENT_BRANCH##refs/heads/}
- CURRENT_BRANCH=${CURRENT_BRANCH:-HEAD}
- fi
- echo "Current branch is [${CURRENT_BRANCH}]"
- git checkout ${CURRENT_BRANCH} || echo "Failed to check the branch... continuing with the script"
-}
-
-# Switches to the provided value of the release version. We always prefix it with `v`
-function switch_to_tag() {
- git checkout v${VERSION}
-}
-
-# Build the docs if switch is on
-function build_docs_if_applicable() {
- if [[ "${BUILD}" == "yes" ]] ; then
- ./mvnw clean install -P docs -pl docs -DskipTests
- fi
-}
-
-# Get the name of the `docs.main` property
-# Get whitelisted branches - assumes that a `docs` module is available under `docs` profile
-function retrieve_doc_properties() {
- MAIN_ADOC_VALUE=$("${MAVEN_PATH}"mvn -q \
- -Dexec.executable="echo" \
- -Dexec.args='${docs.main}' \
- --non-recursive \
- org.codehaus.mojo:exec-maven-plugin:1.3.1:exec)
- echo "Extracted 'main.adoc' from Maven build [${MAIN_ADOC_VALUE}]"
-
-
- WHITELIST_PROPERTY=${WHITELIST_PROPERTY:-"docs.whitelisted.branches"}
- WHITELISTED_BRANCHES_VALUE=$("${MAVEN_PATH}"mvn -q \
- -Dexec.executable="echo" \
- -Dexec.args="\${${WHITELIST_PROPERTY}}" \
- org.codehaus.mojo:exec-maven-plugin:1.3.1:exec \
- -P docs \
- -pl docs)
- echo "Extracted '${WHITELIST_PROPERTY}' from Maven build [${WHITELISTED_BRANCHES_VALUE}]"
-}
-
-# Stash any outstanding changes
-function stash_changes() {
- git diff-index --quiet HEAD && dirty=$? || (echo "Failed to check if the current repo is dirty. Assuming that it is." && dirty="1")
- if [ "$dirty" != "0" ]; then git stash; fi
-}
-
-# Switch to gh-pages branch to sync it with current branch
-function add_docs_from_target() {
- local DESTINATION_REPO_FOLDER
- if [[ -z "${DESTINATION}" && -z "${CLONE}" ]] ; then
- DESTINATION_REPO_FOLDER=${ROOT_FOLDER}
- elif [[ "${CLONE}" == "yes" ]]; then
- mkdir -p ${ROOT_FOLDER}/target
- local clonedStatic=${ROOT_FOLDER}/target/spring-cloud-static
- if [[ ! -e "${clonedStatic}/.git" ]]; then
- echo "Cloning Spring Cloud Static to target"
- git clone ${SPRING_CLOUD_STATIC_REPO} ${clonedStatic} && git checkout gh-pages
- else
- echo "Spring Cloud Static already cloned - will pull changes"
- cd ${clonedStatic} && git checkout gh-pages && git pull origin gh-pages
- fi
- DESTINATION_REPO_FOLDER=${clonedStatic}/${REPO_NAME}
- mkdir -p ${DESTINATION_REPO_FOLDER}
- else
- if [[ ! -e "${DESTINATION}/.git" ]]; then
- echo "[${DESTINATION}] is not a git repository"
- exit 1
- fi
- DESTINATION_REPO_FOLDER=${DESTINATION}/${REPO_NAME}
- mkdir -p ${DESTINATION_REPO_FOLDER}
- echo "Destination was provided [${DESTINATION}]"
- fi
- cd ${DESTINATION_REPO_FOLDER}
- git checkout gh-pages
- git pull origin gh-pages
-
- # Add git branches
- ###################################################################
- if [[ -z "${VERSION}" ]] ; then
- copy_docs_for_current_version
- else
- copy_docs_for_provided_version
- fi
- commit_changes_if_applicable
-}
-
-
-# Copies the docs by using the retrieved properties from Maven build
-function copy_docs_for_current_version() {
- if [[ "${CURRENT_BRANCH}" == "master" ]] ; then
- echo -e "Current branch is master - will copy the current docs only to the root folder"
- for f in docs/target/generated-docs/*; do
- file=${f#docs/target/generated-docs/*}
- if ! git ls-files -i -o --exclude-standard --directory | grep -q ^$file$; then
- # Not ignored...
- cp -rf $f ${ROOT_FOLDER}/
- git add -A ${ROOT_FOLDER}/$file
- fi
- done
- COMMIT_CHANGES="yes"
- else
- echo -e "Current branch is [${CURRENT_BRANCH}]"
- # https://stackoverflow.com/questions/29300806/a-bash-script-to-check-if-a-string-is-present-in-a-comma-separated-list-of-strin
- if [[ ",${WHITELISTED_BRANCHES_VALUE}," = *",${CURRENT_BRANCH},"* ]] ; then
- mkdir -p ${ROOT_FOLDER}/${CURRENT_BRANCH}
- echo -e "Branch [${CURRENT_BRANCH}] is whitelisted! Will copy the current docs to the [${CURRENT_BRANCH}] folder"
- for f in docs/target/generated-docs/*; do
- file=${f#docs/target/generated-docs/*}
- if ! git ls-files -i -o --exclude-standard --directory | grep -q ^$file$; then
- # Not ignored...
- # We want users to access 2.0.0.BUILD-SNAPSHOT/ 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 2.0.0.BUILD-SNAPSHOT/ 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/src/test/bats/fixtures/spring-cloud-stream/docs/src/main/asciidoc/home.adoc b/docs/src/test/bats/fixtures/spring-cloud-stream/docs/src/main/asciidoc/home.adoc
deleted file mode 100644
index a1822dfc..00000000
--- a/docs/src/test/bats/fixtures/spring-cloud-stream/docs/src/main/asciidoc/home.adoc
+++ /dev/null
@@ -1,24 +0,0 @@
-= Spring Cloud Stream Reference Documentation
-Sabby Anandan; Marius Bogoevici; Eric Bottard; Mark Fisher; Ilayaperumal Gopinathan; Gunnar Hillert; Mark Pollack; Patrick Peralta; Glenn Renfro; Thomas Risberg; Dave Syer; David Turanski; Janne Valkealahti; Benjamin Klein; Vinicius Carvalho; Gary Russell; Oleg Zhurakousky; Jay Bryant; Soby Chacko
-
-*{spring-cloud-stream-version}*
-
-:docinfo: shared
-
-The reference documentation consists of the following sections:
-
-[horizontal]
-<> :: History, Quick Start, Concepts, Architecture Overview, Binder Abstraction, and Core Features
-{docs-url}spring-cloud-stream-binder-rabbit/{docs-version}spring-cloud-stream-binder-rabbit.html[Rabbit MQ Binder] :: Spring Cloud Stream binder reference for Rabbit MQ
-{docs-url}spring-cloud-stream-binder-kafka/{docs-version}spring-cloud-stream-binder-kafka.html#_apache_kafka_binder[Apache Kafka Binder] :: Spring Cloud Stream binder reference for Apache Kafka
-{docs-url}spring-cloud-stream-binder-kafka/{docs-version}spring-cloud-stream-binder-kafka.html#_kafka_streams_binder[Apache Kafka Streams Binder] :: Spring Cloud Stream binder reference for Apache Kafka Streams
-<> :: A collection of Partner maintained binder implementations for Spring Cloud Stream (e.g., Azure Event Hubs, Google PubSub, Solace PubSub+)
-https://github.com/spring-cloud/spring-cloud-stream-samples/[Spring Cloud Stream Samples] :: A curated collection of repeatable Spring Cloud Stream samples to walk through the features
-
-Relevant Links:
-
-[horizontal]
-https://cloud.spring.io/spring-cloud-dataflow/[Spring Cloud Data Flow] :: Spring Cloud Data Flow
-http://www.enterpriseintegrationpatterns.com/[Enterprise Integration Patterns] :: Patterns and Best Practices for Enterprise Integration
-https://spring.io/projects/spring-integration[Spring Integration] :: Spring Integration framework
-
diff --git a/docs/src/test/bats/fixtures/spring-cloud-stream/docs/src/main/asciidoc/images/SCSt-groups.png b/docs/src/test/bats/fixtures/spring-cloud-stream/docs/src/main/asciidoc/images/SCSt-groups.png
deleted file mode 100644
index 931ac972..00000000
Binary files a/docs/src/test/bats/fixtures/spring-cloud-stream/docs/src/main/asciidoc/images/SCSt-groups.png and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/spring-cloud-stream/docs/src/main/asciidoc/images/SCSt-overview.png b/docs/src/test/bats/fixtures/spring-cloud-stream/docs/src/main/asciidoc/images/SCSt-overview.png
deleted file mode 100644
index 46dd0c80..00000000
Binary files a/docs/src/test/bats/fixtures/spring-cloud-stream/docs/src/main/asciidoc/images/SCSt-overview.png and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/spring-cloud-stream/docs/src/main/asciidoc/images/SCSt-partitioning.png b/docs/src/test/bats/fixtures/spring-cloud-stream/docs/src/main/asciidoc/images/SCSt-partitioning.png
deleted file mode 100644
index 833d2ac6..00000000
Binary files a/docs/src/test/bats/fixtures/spring-cloud-stream/docs/src/main/asciidoc/images/SCSt-partitioning.png and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/spring-cloud-stream/docs/src/main/asciidoc/images/SCSt-sensors.png b/docs/src/test/bats/fixtures/spring-cloud-stream/docs/src/main/asciidoc/images/SCSt-sensors.png
deleted file mode 100644
index 6a15c872..00000000
Binary files a/docs/src/test/bats/fixtures/spring-cloud-stream/docs/src/main/asciidoc/images/SCSt-sensors.png and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/spring-cloud-stream/docs/src/main/asciidoc/images/SCSt-with-binder.png b/docs/src/test/bats/fixtures/spring-cloud-stream/docs/src/main/asciidoc/images/SCSt-with-binder.png
deleted file mode 100644
index b4d66fd5..00000000
Binary files a/docs/src/test/bats/fixtures/spring-cloud-stream/docs/src/main/asciidoc/images/SCSt-with-binder.png and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/spring-cloud-stream/docs/src/main/asciidoc/images/custom_vs_global_error_channels.png b/docs/src/test/bats/fixtures/spring-cloud-stream/docs/src/main/asciidoc/images/custom_vs_global_error_channels.png
deleted file mode 100644
index 6363d516..00000000
Binary files a/docs/src/test/bats/fixtures/spring-cloud-stream/docs/src/main/asciidoc/images/custom_vs_global_error_channels.png and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/spring-cloud-stream/docs/src/main/asciidoc/images/producers-consumers.png b/docs/src/test/bats/fixtures/spring-cloud-stream/docs/src/main/asciidoc/images/producers-consumers.png
deleted file mode 100755
index 9990897d..00000000
Binary files a/docs/src/test/bats/fixtures/spring-cloud-stream/docs/src/main/asciidoc/images/producers-consumers.png and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/spring-cloud-stream/docs/src/main/asciidoc/images/redis-binder.png b/docs/src/test/bats/fixtures/spring-cloud-stream/docs/src/main/asciidoc/images/redis-binder.png
deleted file mode 100755
index 1832bd2e..00000000
Binary files a/docs/src/test/bats/fixtures/spring-cloud-stream/docs/src/main/asciidoc/images/redis-binder.png and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/spring-cloud-stream/docs/src/main/asciidoc/images/registration.png b/docs/src/test/bats/fixtures/spring-cloud-stream/docs/src/main/asciidoc/images/registration.png
deleted file mode 100644
index d2c044c1..00000000
Binary files a/docs/src/test/bats/fixtures/spring-cloud-stream/docs/src/main/asciidoc/images/registration.png and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/spring-cloud-stream/docs/src/main/asciidoc/images/schema_reading.png b/docs/src/test/bats/fixtures/spring-cloud-stream/docs/src/main/asciidoc/images/schema_reading.png
deleted file mode 100644
index df998563..00000000
Binary files a/docs/src/test/bats/fixtures/spring-cloud-stream/docs/src/main/asciidoc/images/schema_reading.png and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/spring-cloud-stream/docs/src/main/asciidoc/images/schema_resolution.png b/docs/src/test/bats/fixtures/spring-cloud-stream/docs/src/main/asciidoc/images/schema_resolution.png
deleted file mode 100644
index 2acbfac7..00000000
Binary files a/docs/src/test/bats/fixtures/spring-cloud-stream/docs/src/main/asciidoc/images/schema_resolution.png and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/spring-cloud-stream/docs/src/main/asciidoc/images/spring-initializr.png b/docs/src/test/bats/fixtures/spring-cloud-stream/docs/src/main/asciidoc/images/spring-initializr.png
deleted file mode 100644
index 8ece01df..00000000
Binary files a/docs/src/test/bats/fixtures/spring-cloud-stream/docs/src/main/asciidoc/images/spring-initializr.png and /dev/null differ
diff --git a/docs/src/test/bats/fixtures/spring-cloud-stream/docs/src/main/asciidoc/preface.adoc b/docs/src/test/bats/fixtures/spring-cloud-stream/docs/src/main/asciidoc/preface.adoc
deleted file mode 100644
index 51b2574b..00000000
--- a/docs/src/test/bats/fixtures/spring-cloud-stream/docs/src/main/asciidoc/preface.adoc
+++ /dev/null
@@ -1,183 +0,0 @@
-=== A Brief History of Spring's Data Integration Journey
-
-Spring's journey on Data Integration started with https://projects.spring.io/spring-integration/[Spring Integration]. With its programming model, it provided a consistent developer experience to build applications that can embrace http://www.enterpriseintegrationpatterns.com/[Enterprise Integration Patterns] to connect with external systems such as, databases, message brokers, and among others.
-
-Fast forward to the cloud-era, where microservices have become prominent in the enterprise setting. https://projects.spring.io/spring-boot/[Spring Boot] transformed the way how developers built Applications. With Spring's programming model and the runtime responsibilities handled by Spring Boot, it became seamless to develop stand-alone, production-grade Spring-based microservices.
-
-To extend this to Data Integration workloads, Spring Integration and Spring Boot were put together into a new project. Spring Cloud Stream was born.
-
-[%hardbreaks]
-With Spring Cloud Stream, developers can:
-* Build, test, iterate, and deploy data-centric applications in isolation.
-* Apply modern microservices architecture patterns, including composition through messaging.
-* Decouple application responsibilities with event-centric thinking. An event can represent something that has happened in time, to which the downstream consumer applications can react without knowing where it originated or the producer's identity.
-* Port the business logic onto message brokers (such as RabbitMQ, Apache Kafka, Amazon Kinesis).
-* Interoperate between channel-based and non-channel-based application binding scenarios to support stateless and stateful computations by using Project Reactor's Flux and Kafka Streams APIs.
-* Rely on the framework's automatic content-type support for common use-cases. Extending to different data conversion types is possible.
-
-=== Quick Start
-
-You can try Spring Cloud Stream in less then 5 min even before you jump into any details by following this three-step guide.
-
-We show you how to create a Spring Cloud Stream application that receives messages coming from the messaging middleware of your choice (more on this later) and logs received messages to the console.
-We call it `LoggingConsumer`.
-While not very practical, it provides a good introduction to some of the main concepts
-and abstractions, making it easier to digest the rest of this user guide.
-
-The three steps are as follows:
-
-. <>
-. <>
-. <>
-
-[[spring-cloud-stream-preface-creating-sample-application]]
-==== Creating a Sample Application by Using Spring Initializr
-To get started, visit the https://start.spring.io[Spring Initializr]. From there, you can generate our `LoggingConsumer` application. To do so:
-
-. In the *Dependencies* section, start typing `stream`.
-When the "`Cloud Stream`" option should appears, select it.
-. Start typing either 'kafka' or 'rabbit'.
-. Select "`Kafka`" or "`RabbitMQ`".
-+
-Basically, you choose the messaging middleware to which your application binds.
-We recommend using the one you have already installed or feel more comfortable with installing and running.
-Also, as you can see from the Initilaizer screen, there are a few other options you can choose.
-For example, you can choose Gradle as your build tool instead of Maven (the default).
-. In the *Artifact* field, type 'logging-consumer'.
-+
-The value of the *Artifact* field becomes the application name.
-If you chose RabbitMQ for the middleware, your Spring Initializr should now be as follows:
-
-[%hardbreaks]
-[%hardbreaks]
-[%hardbreaks]
-image::{github-raw}/docs/src/main/asciidoc/images/spring-initializr.png[align="center"]
-
-[%hardbreaks]
-[%hardbreaks]
-
-. Click the *Generate Project* button.
-+
-Doing so downloads the zipped version of the generated project to your hard drive.
-. Unzip the file into the folder you want to use as your project directory.
-
-TIP: We encourage you to explore the many possibilities available in the Spring Initializr.
-It lets you create many different kinds of Spring applications.
-
-[[spring-cloud-stream-preface-importing-project]]
-==== Importing the Project into Your IDE
-
-Now you can import the project into your IDE.
-Keep in mind that, depending on the IDE, you may need to follow a specific import procedure.
-For example, depending on how the project was generated (Maven or Gradle), you may need to follow specific import procedure (for example, in Eclipse or STS, you need to use File -> Import -> Maven -> Existing Maven Project).
-
-Once imported, the project must have no errors of any kind. Also, `src/main/java` should contain `com.example.loggingconsumer.LoggingConsumerApplication`.
-
-Technically, at this point, you can run the application's main class.
-It is already a valid Spring Boot application.
-However, it does not do anything, so we want to add some code.
-
-[[spring-cloud-stream-preface-adding-message-handler]]
-==== Adding a Message Handler, Building, and Running
-
-Modify the `com.example.loggingconsumer.LoggingConsumerApplication` class to look as follows:
-
-[source, java]
-----
-@SpringBootApplication
-@EnableBinding(Sink.class)
-public class LoggingConsumerApplication {
-
- public static void main(String[] args) {
- SpringApplication.run(LoggingConsumerApplication.class, args);
- }
-
- @StreamListener(Sink.INPUT)
- public void handle(Person person) {
- System.out.println("Received: " + person);
- }
-
- public static class Person {
- private String name;
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public String toString() {
- return this.name;
- }
- }
-}
-----
-
-As you can see from the preceding listing:
-
-* We have enabled `Sink` binding (input-no-output) by using `@EnableBinding(Sink.class)`.
-Doing so signals to the framework to initiate binding to the messaging middleware, where it automatically creates the destination (that is, queue, topic, and others) that are bound to the `Sink.INPUT` channel.
-* We have added a `handler` method to receive incoming messages of type `Person`.
-Doing so lets you see one of the core features of the framework: It tries to automatically convert incoming message payloads to type `Person`.
-
-You now have a fully functional Spring Cloud Stream application that does listens for messages.
-From here, for simplicity, we assume you selected RabbitMQ in <>.
-Assuming you have RabbitMQ installed and running, you can start the application by running its `main` method in your IDE.
-
-You should see following output:
-
-[source]
-----
- --- [ main] c.s.b.r.p.RabbitExchangeQueueProvisioner : declaring queue for inbound: input.anonymous.CbMIwdkJSBO1ZoPDOtHtCg, bound to: input
- --- [ main] o.s.a.r.c.CachingConnectionFactory : Attempting to connect to: [localhost:5672]
- --- [ main] o.s.a.r.c.CachingConnectionFactory : Created new connection: rabbitConnectionFactory#2a3a299:0/SimpleConnection@66c83fc8. . .
- . . .
- --- [ main] o.s.i.a.i.AmqpInboundChannelAdapter : started inbound.input.anonymous.CbMIwdkJSBO1ZoPDOtHtCg
- . . .
- --- [ main] c.e.l.LoggingConsumerApplication : Started LoggingConsumerApplication in 2.531 seconds (JVM running for 2.897)
-----
-
-Go to the RabbitMQ management console or any other RabbitMQ client and send a message to `input.anonymous.CbMIwdkJSBO1ZoPDOtHtCg`.
-The `anonymous.CbMIwdkJSBO1ZoPDOtHtCg` part represents the group name and is generated, so it is bound to be different in your environment.
-For something more predictable, you can use an explicit group name by setting `spring.cloud.stream.bindings.input.group=hello` (or whatever name you like).
-
-The contents of the message should be a JSON representation of the `Person` class, as follows:
-
- {"name":"Sam Spade"}
-
-Then, in your console, you should see:
-
-`Received: Sam Spade`
-
-You can also build and package your application into a boot jar (by using `./mvnw clean install`) and run the built JAR by using the `java -jar` command.
-
-Now you have a working (albeit very basic) Spring Cloud Stream application.
-
-== What's New in 2.2?
-Spring Cloud Stream introduces a number of new features, enhancements, and changes in addition to the once already introduced in
-https://docs.spring.io/spring-cloud-stream/docs/Elmhurst.SR2/reference/htmlsingle/#_what_s_new_in_2_0[version 2.0]
-
-
-The following sections outline the most notable ones:
-
-* <>
-* <>
-
-[[spring-cloud-stream-preface-new-features]]
-=== New Features and Components
-
-
-[[spring-cloud-stream-preface-notable-enhancements]]
-=== Notable Enhancements
-
-
-[[spring-cloud-stream-preface-notable-deprecations]]
-=== Notable Deprecations
-
-As of version 2.2, the following items have been deprecated:
-
-- The spring-cloud-stream-reactive module is deprecated in favor of native support
- via <> programming model.
-
-=== Notes on migrating from 1.x to 2.x?
-- Due to the improvements in content-type negotiation, the `originalContentType` header is not used (ignored) since 2.x and only exists for maintaining compatibility with 1.x versions
-- Introduction of `@StreamRetryTemplate` qualifier. While configuring custom instance of the `RetryTemplate` and to avoid conflicts you must qualify the instance of such `RetryTemplate` with this qualifier. See <> for more details.
diff --git a/docs/src/test/bats/fixtures/spring-cloud-stream/docs/src/main/asciidoc/spring-cloud-stream.adoc b/docs/src/test/bats/fixtures/spring-cloud-stream/docs/src/main/asciidoc/spring-cloud-stream.adoc
deleted file mode 100644
index 8ef13567..00000000
--- a/docs/src/test/bats/fixtures/spring-cloud-stream/docs/src/main/asciidoc/spring-cloud-stream.adoc
+++ /dev/null
@@ -1,2792 +0,0 @@
-:github-tag: master
-:github-repo: spring-cloud/spring-cloud-stream
-:github-raw: https://raw.githubusercontent.com/{github-repo}/{github-tag}
-:github-code: https://github.com/{github-repo}/tree/{github-tag}
-:toc: left
-:toclevels: 8
-:nofooter:
-:sectlinks: true
-
-*{spring-cloud-stream-version}*
-
-[#index-link]
-{docs-url}spring-cloud-stream/{docs-version}home.html
-
-[[spring-cloud-stream-reference]]
-
-:doctype: book
-
-// ======================================================================================
-
-== Preface
-include::preface.adoc[]
-
-[partintro]
---
-This section goes into more detail about how you can work with Spring Cloud Stream.
-It covers topics such as creating and running stream applications.
---
-
-[[spring-cloud-stream-overview-introducing]]
-== Introducing Spring Cloud Stream
-
-Spring Cloud Stream is a framework for building message-driven microservice applications.
-Spring Cloud Stream builds upon Spring Boot to create standalone, production-grade Spring applications and uses Spring Integration to provide connectivity to message brokers.
-It provides opinionated configuration of middleware from several vendors, introducing the concepts of persistent publish-subscribe semantics, consumer groups, and partitions.
-
-You can add the `@EnableBinding` annotation to your application to get immediate connectivity to a message broker, and you can add `@StreamListener` to a method to cause it to receive events for stream processing.
-The following example shows a sink application that receives external messages:
-
-[source,java]
-----
-@SpringBootApplication
-@EnableBinding(Sink.class)
-public class VoteRecordingSinkApplication {
-
- public static void main(String[] args) {
- SpringApplication.run(VoteRecordingSinkApplication.class, args);
- }
-
- @StreamListener(Sink.INPUT)
- public void processVote(Vote vote) {
- votingService.recordVote(vote);
- }
-}
-----
-
-The `@EnableBinding` annotation takes one or more interfaces as parameters (in this case, the parameter is a single `Sink` interface).
-An interface declares input and output channels.
-Spring Cloud Stream provides the `Source`, `Sink`, and `Processor` interfaces. You can also define your own interfaces.
-
-The following listing shows the definition of the `Sink` interface:
-
-[source,java]
-----
-public interface Sink {
- String INPUT = "input";
-
- @Input(Sink.INPUT)
- SubscribableChannel input();
-}
-----
-
-The `@Input` annotation identifies an input channel, through which received messages enter the application.
-The `@Output` annotation identifies an output channel, through which published messages leave the application.
-The `@Input` and `@Output` annotations can take a channel name as a parameter.
-If a name is not provided, the name of the annotated method is used.
-
-Spring Cloud Stream creates an implementation of the interface for you.
-You can use this in the application by autowiring it, as shown in the following example (from a test case):
-
-[source,java]
-----
-@RunWith(SpringJUnit4ClassRunner.class)
-@SpringApplicationConfiguration(classes = VoteRecordingSinkApplication.class)
-@WebAppConfiguration
-@DirtiesContext
-public class StreamApplicationTests {
-
- @Autowired
- private Sink sink;
-
- @Test
- public void contextLoads() {
- assertThat(this.sink.input()).isNotNull();
- }
-}
-----
-
-== Main Concepts
-
-Spring Cloud Stream provides a number of abstractions and primitives that simplify the writing of message-driven microservice applications.
-This section gives an overview of the following:
-
-* <>
-* <>
-* <>
-* <>
-* <>
-* <>
-
-[[spring-cloud-stream-overview-application-model]]
-=== Application Model
-
-A Spring Cloud Stream application consists of a middleware-neutral core.
-The application communicates with the outside world through input and output channels injected into it by Spring Cloud Stream.
-Channels are connected to external brokers through middleware-specific Binder implementations.
-
-.Spring Cloud Stream Application
-image::{github-raw}/docs/src/main/asciidoc/images/SCSt-with-binder.png[width=800,scaledwidth="75%",align="center"]
-
-==== Fat JAR
-
-Spring Cloud Stream applications can be run in stand-alone mode from your IDE for testing.
-To run a Spring Cloud Stream application in production, you can create an executable (or "`fat`") JAR by using the standard Spring Boot tooling provided for Maven or Gradle. See the https://docs.spring.io/spring-boot/docs/current/reference/html/howto-build.html#howto-create-an-executable-jar-with-maven[Spring Boot Reference Guide] for more details.
-
-[[spring-cloud-stream-overview-binder-abstraction]]
-=== The Binder Abstraction
-
-Spring Cloud Stream provides Binder implementations for https://github.com/spring-cloud/spring-cloud-stream-binder-kafka[Kafka] and https://github.com/spring-cloud/spring-cloud-stream-binder-rabbit[Rabbit MQ].
-Spring Cloud Stream also includes a https://github.com/spring-cloud/spring-cloud-stream/blob/master/spring-cloud-stream-test-support/src/main/java/org/springframework/cloud/stream/test/binder/TestSupportBinder.java[TestSupportBinder], which leaves a channel unmodified so that tests can interact with channels directly and reliably assert on what is received.
-You can also use the extensible API to write your own Binder.
-
-Spring Cloud Stream uses Spring Boot for configuration, and the Binder abstraction makes it possible for a Spring Cloud Stream application to be flexible in how it connects to middleware.
-For example, deployers can dynamically choose, at runtime, the destinations (such as the Kafka topics or RabbitMQ exchanges) to which channels connect.
-Such configuration can be provided through external configuration properties and in any form supported by Spring Boot (including application arguments, environment variables, and `application.yml` or `application.properties` files).
-In the sink example from the <> section, setting the `spring.cloud.stream.bindings.input.destination` application property to `raw-sensor-data` causes it to read from the `raw-sensor-data` Kafka topic or from a queue bound to the `raw-sensor-data` RabbitMQ exchange.
-
-Spring Cloud Stream automatically detects and uses a binder found on the classpath.
-You can use different types of middleware with the same code.
-To do so, include a different binder at build time.
-For more complex use cases, you can also package multiple binders with your application and have it choose the binder( and even whether to use different binders for different channels) at runtime.
-
-[[spring-cloud-stream-overview-persistent-publish-subscribe-support]]
-=== Persistent Publish-Subscribe Support
-
-Communication between applications follows a publish-subscribe model, where data is broadcast through shared topics.
-This can be seen in the following figure, which shows a typical deployment for a set of interacting Spring Cloud Stream applications.
-
-.Spring Cloud Stream Publish-Subscribe
-image::{github-raw}/docs/src/main/asciidoc/images/SCSt-sensors.png[width=800,scaledwidth="75%",align="center"]
-
-Data reported by sensors to an HTTP endpoint is sent to a common destination named `raw-sensor-data`.
-From the destination, it is independently processed by a microservice application that computes time-windowed averages and by another microservice application that ingests the raw data into HDFS (Hadoop Distributed File System).
-In order to process the data, both applications declare the topic as their input at runtime.
-
-The publish-subscribe communication model reduces the complexity of both the producer and the consumer and lets new applications be added to the topology without disruption of the existing flow.
-For example, downstream from the average-calculating application, you can add an application that calculates the highest temperature values for display and monitoring.
-You can then add another application that interprets the same flow of averages for fault detection.
-Doing all communication through shared topics rather than point-to-point queues reduces coupling between microservices.
-
-While the concept of publish-subscribe messaging is not new, Spring Cloud Stream takes the extra step of making it an opinionated choice for its application model.
-By using native middleware support, Spring Cloud Stream also simplifies use of the publish-subscribe model across different platforms.
-
-[[consumer-groups]]
-=== Consumer Groups
-While the publish-subscribe model makes it easy to connect applications through shared topics, the ability to scale up by creating multiple instances of a given application is equally important.
-When doing so, different instances of an application are placed in a competing consumer relationship, where only one of the instances is expected to handle a given message.
-
-Spring Cloud Stream models this behavior through the concept of a consumer group.
-(Spring Cloud Stream consumer groups are similar to and inspired by Kafka consumer groups.)
-Each consumer binding can use the `spring.cloud.stream.bindings..group` property to specify a group name.
-For the consumers shown in the following figure, this property would be set as `spring.cloud.stream.bindings..group=hdfsWrite` or `spring.cloud.stream.bindings..group=average`.
-
-.Spring Cloud Stream Consumer Groups
-image::{github-raw}/docs/src/main/asciidoc/images/SCSt-groups.png[width=800,scaledwidth="75%",align="center"]
-
-All groups that subscribe to a given destination receive a copy of published data, but only one member of each group receives a given message from that destination.
-By default, when a group is not specified, Spring Cloud Stream assigns the application to an anonymous and independent single-member consumer group that is in a publish-subscribe relationship with all other consumer groups.
-
-[[consumer-types]]
-=== Consumer Types
-
-Two types of consumer are supported:
-
-* Message-driven (sometimes referred to as Asynchronous)
-* Polled (sometimes referred to as Synchronous)
-
-Prior to version 2.0, only asynchronous consumers were supported. A message is delivered as soon as it is available and a thread is available to process it.
-
-When you wish to control the rate at which messages are processed, you might want to use a synchronous consumer.
-// TODO This needs more description. A sentence parallel to the last sentence of the preceding paragraph would help.
-
-[[durability]]
-==== Durability
-
-Consistent with the opinionated application model of Spring Cloud Stream, consumer group subscriptions are durable.
-That is, a binder implementation ensures that group subscriptions are persistent and that, once at least one subscription for a group has been created, the group receives messages, even if they are sent while all applications in the group are stopped.
-
-[NOTE]
-====
-Anonymous subscriptions are non-durable by nature.
-For some binder implementations (such as RabbitMQ), it is possible to have non-durable group subscriptions.
-====
-
-In general, it is preferable to always specify a consumer group when binding an application to a given destination.
-When scaling up a Spring Cloud Stream application, you must specify a consumer group for each of its input bindings.
-Doing so prevents the application's instances from receiving duplicate messages (unless that behavior is desired, which is unusual).
-
-[[partitioning]]
-=== Partitioning Support
-
-Spring Cloud Stream provides support for partitioning data between multiple instances of a given application.
-In a partitioned scenario, the physical communication medium (such as the broker topic) is viewed as being structured into multiple partitions.
-One or more producer application instances send data to multiple consumer application instances and ensure that data identified by common characteristics are processed by the same consumer instance.
-
-Spring Cloud Stream provides a common abstraction for implementing partitioned processing use cases in a uniform fashion.
-Partitioning can thus be used whether the broker itself is naturally partitioned (for example, Kafka) or not (for example, RabbitMQ).
-
-.Spring Cloud Stream Partitioning
-image::{github-raw}/docs/src/main/asciidoc/images/SCSt-partitioning.png[width=800,scaledwidth="75%",align="center"]
-
-Partitioning is a critical concept in stateful processing, where it is critical (for either performance or consistency reasons) to ensure that all related data is processed together.
-For example, in the time-windowed average calculation example, it is important that all measurements from any given sensor are processed by the same application instance.
-
-NOTE: To set up a partitioned processing scenario, you must configure both the data-producing and the data-consuming ends.
-
-== Programming Model
-
-To understand the programming model, you should be familiar with the following core concepts:
-
-* *Destination Binders:* Components responsible to provide integration with the external messaging systems.
-* *Destination Bindings:* Bridge between the external messaging systems and application provided _Producers_ and _Consumers_ of messages (created by the Destination Binders).
-* *Message:* The canonical data structure used by producers and consumers to communicate with Destination Binders (and thus other applications via external messaging systems).
-
-image::{github-raw}/docs/src/main/asciidoc/images/SCSt-overview.png[width=800,scaledwidth="75%",align="center"]
-
-=== Destination Binders
-
-Destination Binders are extension components of Spring Cloud Stream responsible for providing the necessary configuration and implementation to facilitate
-integration with external messaging systems.
-This integration is responsible for connectivity, delegation, and routing of messages to and from producers and consumers, data type conversion,
-invocation of the user code, and more.
-
-Binders handle a lot of the boiler plate responsibilities that would otherwise fall on your shoulders. However, to accomplish that, the binder still needs
-some help in the form of minimalistic yet required set of instructions from the user, which typically come in the form of some type of configuration.
-
-While it is out of scope of this section to discuss all of the available binder and binding configuration options (the rest of the manual covers them extensively),
-_Destination Binding_ does require special attention. The next section discusses it in detail.
-
-=== Destination Bindings
-
-As stated earlier, _Destination Bindings_ provide a bridge between the external messaging system and application-provided _Producers_ and _Consumers_.
-
-Applying the @EnableBinding annotation to one of the application’s configuration classes defines a destination binding.
-The `@EnableBinding` annotation itself is meta-annotated with `@Configuration` and triggers the configuration of the Spring Cloud Stream infrastructure.
-
-The following example shows a fully configured and functioning Spring Cloud Stream application that receives the payload of the message from the `INPUT`
-destination as a `String` type (see <> section), logs it to the console and sends it to the `OUTPUT` destination after converting it to upper case.
-
-[source, java]
-----
-@SpringBootApplication
-@EnableBinding(Processor.class)
-public class MyApplication {
-
- public static void main(String[] args) {
- SpringApplication.run(MyApplication.class, args);
- }
-
- @StreamListener(Processor.INPUT)
- @SendTo(Processor.OUTPUT)
- public String handle(String value) {
- System.out.println("Received: " + value);
- return value.toUpperCase();
- }
-}
-----
-
-As you can see the `@EnableBinding` annotation can take one or more interface classes as parameters. The parameters are referred to as _bindings_,
-and they contain methods representing _bindable components_.
-These components are typically message channels (see https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-messaging.html[Spring Messaging])
-for channel-based binders (such as Rabbit, Kafka, and others). However other types of bindings can
-provide support for the native features of the corresponding technology. For example Kafka Streams binder (formerly known as KStream) allows native bindings directly to Kafka Streams
-(see http://cloud.spring.io/spring-cloud-static/spring-cloud-stream-binder-kafka/{spring-cloud-stream-version}/[Kafka Binder] for more details).
-
-Spring Cloud Stream already provides _binding_ interfaces for typical message exchange contracts, which include:
-
-* *Sink:* Identifies the contract for the message consumer by providing the destination from which the message is consumed.
-* *Source:* Identifies the contract for the message producer by providing the destination to which the produced message is sent.
-* *Processor:* Encapsulates both the sink and the source contracts by exposing two destinations that allow consumption and production of messages.
-
-[source, java]
-----
-public interface Sink {
-
- String INPUT = "input";
-
- @Input(Sink.INPUT)
- SubscribableChannel input();
-}
-----
-
-[source, java]
-----
-public interface Source {
-
- String OUTPUT = "output";
-
- @Output(Source.OUTPUT)
- MessageChannel output();
-}
-----
-
-[source, java]
-----
-public interface Processor extends Source, Sink {}
-----
-
-While the preceding example satisfies the majority of cases, you can also define your own contracts by defining your own bindings interfaces and use `@Input` and `@Output`
-annotations to identify the actual _bindable components_.
-
-For example:
-
-[source, java]
-----
-public interface Barista {
-
- @Input
- SubscribableChannel orders();
-
- @Output
- MessageChannel hotDrinks();
-
- @Output
- MessageChannel coldDrinks();
-}
-----
-
-Using the interface shown in the preceding example as a parameter to `@EnableBinding` triggers the creation of the three bound channels named `orders`, `hotDrinks`, and `coldDrinks`,
-respectively.
-
-You can provide as many binding interfaces as you need, as arguments to the `@EnableBinding` annotation, as shown in the following example:
-
-[source, java]
-----
-@EnableBinding(value = { Orders.class, Payment.class })
-----
-
-In Spring Cloud Stream, the bindable `MessageChannel` components are the Spring Messaging `MessageChannel` (for outbound) and its extension, `SubscribableChannel`,
-(for inbound).
-
-*Pollable Destination Binding*
-
-While the previously described bindings support event-based message consumption, sometimes you need more control, such as rate of consumption.
-
-Starting with version 2.0, you can now bind a pollable consumer:
-
-The following example shows how to bind a pollable consumer:
-
-[source, java]
-----
-public interface PolledBarista {
-
- @Input
- PollableMessageSource orders();
- . . .
-}
-----
-
-In this case, an implementation of `PollableMessageSource` is bound to the `orders` “channelâ€. See <> for more details.
-
-*Customizing Channel Names*
-
-By using the `@Input` and `@Output` annotations, you can specify a customized channel name for the channel, as shown in the following example:
-
-[source, java]
-----
-public interface Barista {
- @Input("inboundOrders")
- SubscribableChannel orders();
-}
-----
-
-In the preceding example, the created bound channel is named `inboundOrders`.
-
-Normally, you need not access individual channels or bindings directly (other then configuring them via `@EnableBinding` annotation). However there may be
-times, such as testing or other corner cases, when you do.
-
-Aside from generating channels for each binding and registering them as Spring beans, for each bound interface, Spring Cloud Stream generates a bean that implements the interface.
-That means you can have access to the interfaces representing the bindings or individual channels by auto-wiring either in your application, as shown in the following two examples:
-
-_Autowire Binding interface_
-
-[source, java]
-----
-@Autowire
-private Source source
-
-public void sayHello(String name) {
- source.output().send(MessageBuilder.withPayload(name).build());
-}
-----
-
-_Autowire individual channel_
-
-[source, java]
-----
-@Autowire
-private MessageChannel output;
-
-public void sayHello(String name) {
- output.send(MessageBuilder.withPayload(name).build());
-}
-----
-
-You can also use standard Spring's `@Qualifier` annotation for cases when channel names are customized or in multiple-channel scenarios that require specifically named channels.
-
-The following example shows how to use the @Qualifier annotation in this way:
-
-[source, java]
-----
-@Autowire
-@Qualifier("myChannel")
-private MessageChannel output;
-----
-
-[[spring-cloud-stream-overview-producing-consuming-messages]]
-=== Producing and Consuming Messages
-
-You can write a Spring Cloud Stream application by using either Spring Integration annotations or Spring Cloud Stream native annotation.
-
-==== Spring Integration Support
-
-Spring Cloud Stream is built on the concepts and patterns defined by http://www.enterpriseintegrationpatterns.com/[Enterprise Integration Patterns] and relies
-in its internal implementation on an already established and popular implementation of Enterprise Integration Patterns within the Spring portfolio of projects:
-https://projects.spring.io/spring-integration/[Spring Integration] framework.
-
-So its only natural for it to support the foundation, semantics, and configuration options that are already established by Spring Integration
-
-For example, you can attach the output channel of a `Source` to a `MessageSource` and use the familiar `@InboundChannelAdapter` annotation, as follows:
-
-[source, java]
-----
-@EnableBinding(Source.class)
-public class TimerSource {
-
- @Bean
- @InboundChannelAdapter(value = Source.OUTPUT, poller = @Poller(fixedDelay = "10", maxMessagesPerPoll = "1"))
- public MessageSource timerMessageSource() {
- return () -> new GenericMessage<>("Hello Spring Cloud Stream");
- }
-}
-----
-
-Similarly, you can use @Transformer or @ServiceActivator while providing an implementation of a message handler method for a _Processor_ binding contract, as shown in the following example:
-
-[source,java]
-----
-@EnableBinding(Processor.class)
-public class TransformProcessor {
- @Transformer(inputChannel = Processor.INPUT, outputChannel = Processor.OUTPUT)
- public Object transform(String message) {
- return message.toUpperCase();
- }
-}
-----
-
-NOTE: While this may be skipping ahead a bit, it is important to understand that, when you consume from the same binding using `@StreamListener` annotation, a pub-sub model is used.
-Each method annotated with `@StreamListener` receives its own copy of a message, and each one has its own consumer group.
-However, if you consume from the same binding by using one of the Spring Integration annotation (such as `@Aggregator`, `@Transformer`, or `@ServiceActivator`), those consume in a competing model.
-No individual consumer group is created for each subscription.
-
-==== Using @StreamListener Annotation
-
-Complementary to its Spring Integration support, Spring Cloud Stream provides its own `@StreamListener` annotation, modeled after other Spring Messaging annotations
-(`@MessageMapping`, `@JmsListener`, `@RabbitListener`, and others) and provides conviniences, such as content-based routing and others.
-
-[source,java]
-----
-@EnableBinding(Sink.class)
-public class VoteHandler {
-
- @Autowired
- VotingService votingService;
-
- @StreamListener(Sink.INPUT)
- public void handle(Vote vote) {
- votingService.record(vote);
- }
-}
-----
-
-As with other Spring Messaging methods, method arguments can be annotated with `@Payload`, `@Headers`, and `@Header`.
-
-
-For methods that return data, you must use the `@SendTo` annotation to specify the output binding destination for data returned by the method, as shown in the following example:
-
-[source,java]
-----
-@EnableBinding(Processor.class)
-public class TransformProcessor {
-
- @Autowired
- VotingService votingService;
-
- @StreamListener(Processor.INPUT)
- @SendTo(Processor.OUTPUT)
- public VoteResult handle(Vote vote) {
- return votingService.record(vote);
- }
-}
-----
-
-
-==== Using @StreamListener for Content-based routing
-
-Spring Cloud Stream supports dispatching messages to multiple handler methods annotated with `@StreamListener` based on conditions.
-
-In order to be eligible to support conditional dispatching, a method must satisfy the follow conditions:
-
-* It must not return a value.
-* It must be an individual message handling method (reactive API methods are not supported).
-
-The condition is specified by a SpEL expression in the `condition` argument of the annotation and is evaluated for each message.
-All the handlers that match the condition are invoked in the same thread, and no assumption must be made about the order in which the invocations take place.
-
-In the following example of a `@StreamListener` with dispatching conditions, all the messages bearing a header `type` with the value `bogey` are dispatched to the
-`receiveBogey` method, and all the messages bearing a header `type` with the value `bacall` are dispatched to the `receiveBacall` method.
-
-[source,java]
-----
-@EnableBinding(Sink.class)
-@EnableAutoConfiguration
-public static class TestPojoWithAnnotatedArguments {
-
- @StreamListener(target = Sink.INPUT, condition = "headers['type']=='bogey'")
- public void receiveBogey(@Payload BogeyPojo bogeyPojo) {
- // handle the message
- }
-
- @StreamListener(target = Sink.INPUT, condition = "headers['type']=='bacall'")
- public void receiveBacall(@Payload BacallPojo bacallPojo) {
- // handle the message
- }
-}
-----
-
-*Content Type Negotiation in the Context of `condition`*
-
-It is important to understand some of the mechanics behind content-based routing using the `condition` argument of `@StreamListener`, especially in the context of the type of the message as a whole.
-It may also help if you familiarize yourself with the <> before you proceed.
-
-Consider the following scenario:
-
-[source,java]
-----
-@EnableBinding(Sink.class)
-@EnableAutoConfiguration
-public static class CatsAndDogs {
-
- @StreamListener(target = Sink.INPUT, condition = "payload.class.simpleName=='Dog'")
- public void bark(Dog dog) {
- // handle the message
- }
-
- @StreamListener(target = Sink.INPUT, condition = "payload.class.simpleName=='Cat'")
- public void purr(Cat cat) {
- // handle the message
- }
-}
-----
-
-The preceding code is perfectly valid. It compiles and deploys without any issues, yet it never produces the result you expect.
-
-That is because you are testing something that does not yet exist in a state you expect. That is because the payload of the message is not yet converted from the
-wire format (`byte[]`) to the desired type.
-In other words, it has not yet gone through the type conversion process described in the <>.
-
-So, unless you use a SPeL expression that evaluates raw data (for example, the value of the first byte in the byte array), use message header-based expressions
-(such as `condition = "headers['type']=='dog'"`).
-
-
-NOTE: At the moment, dispatching through `@StreamListener` conditions is supported only for channel-based binders (not for reactive programming)
-support.
-
-
-[[spring_cloud_function]]
-==== Spring Cloud Function support
-
-Since Spring Cloud Stream v2.1, another alternative for defining _stream handlers_ and _sources_ is to use build-in
-support for https://cloud.spring.io/spring-cloud-function/[Spring Cloud Function] where they can be expressed as beans of
- type `java.util.function.[Supplier/Function/Consumer]`.
-
-To specify which functional bean to bind to the external destination(s) exposed by the bindings, you must provide `spring.cloud.stream.function.definition` property.
-
-Here is the example of the Processor application exposing message handler as `java.util.function.Function`
-[source,java]
-----
-@SpringBootApplication
-@EnableBinding(Processor.class)
-public class MyFunctionBootApp {
-
- public static void main(String[] args) {
- SpringApplication.run(MyFunctionBootApp.class, "--spring.cloud.stream.function.definition=toUpperCase");
- }
-
- @Bean
- public Function toUpperCase() {
- return s -> s.toUpperCase();
- }
-}
-----
-In the above you we simply define a bean of type `java.util.function.Function` called _toUpperCase_ and identify it as a bean to be used as message handler
-whose 'input' and 'output' must be bound to the external destinations exposed by the Processor binding.
-
-Below are the examples of simple functional applications to support Source, Processor and Sink.
-
-Here is the example of a Source application defined as `java.util.function.Supplier`
-[source,java]
-----
-@SpringBootApplication
-@EnableBinding(Source.class)
-public static class SourceFromSupplier {
- public static void main(String[] args) {
- SpringApplication.run(SourceFromSupplier.class, "--spring.cloud.stream.function.definition=date");
- }
- @Bean
- public Supplier date() {
- return () -> new Date(12345L);
- }
-}
-----
-
-Here is the example of a Processor application defined as `java.util.function.Function`
-[source,java]
-----
-@SpringBootApplication
-@EnableBinding(Processor.class)
-public static class ProcessorFromFunction {
- public static void main(String[] args) {
- SpringApplication.run(ProcessorFromFunction.class, "--spring.cloud.stream.function.definition=toUpperCase");
- }
- @Bean
- public Function toUpperCase() {
- return s -> s.toUpperCase();
- }
-}
-----
-
-Here is the example of a Sink application defined as `java.util.function.Consumer`
-[source,java]
-----
-@EnableAutoConfiguration
-@EnableBinding(Sink.class)
-public static class SinkFromConsumer {
- public static void main(String[] args) {
- SpringApplication.run(SinkFromConsumer.class, "--spring.cloud.stream.function.definition=sink");
- }
- @Bean
- public Consumer sink() {
- return System.out::println;
- }
-}
-----
-===== Reactive Functions support
-
-Since _Spring Cloud Function_ is build on top of https://projectreactor.io/[Project Reactor] there isn't much you need to do
-to benefit from reactive programming model while implementing `Supplier`, `Function` or `Consumer`.
-
-For example:
-
-[source,java]
-----
-@EnableAutoConfiguration
-@EnableBinding(Processor.class)
-public static class SinkFromConsumer {
- public static void main(String[] args) {
- SpringApplication.run(SinkFromConsumer.class, "--spring.cloud.stream.function.definition=reactiveUpperCase");
- }
- @Bean
- public Function, Flux> reactiveUpperCase() {
- return flux -> flux.map(val -> val.toUpperCase());
- }
-}
-----
-===== Functional Composition
-
-Using this programming model you can also benefit from functional composition where you can dynamically compose complex handlers from a set of simple functions.
-As an example let's add the following function bean to the application defined above
-[source,java]
-----
-@Bean
-public Function wrapInQuotes() {
- return s -> "\"" + s + "\"";
-}
-----
-and modify the `spring.cloud.stream.function.definition` property to reflect your intention to compose a new function from both ‘toUpperCase’ and ‘wrapInQuotes’.
-To do that Spring Cloud Function allows you to use `|` (pipe) symbol. So to finish our example our property will now look like this:
-
-[source,java]
-----
---spring.cloud.stream.function.definition=toUpperCase|wrapInQuotes
-----
-
-NOTE: One of the great benefits of functional composition support provided by _Spring Cloud Function_ is
-the fact that you can compose _reactive_ and _imperative_ functions.
-
-For example, the above composition could be defined as such (if both functions present):
-
-[source,java]
-----
---spring.cloud.stream.function.definition=reactiveUpperCase|wrapInQuotes
-----
-
-
-
-[[spring-cloud-streams-overview-using-polled-consumers]]
-==== Using Polled Consumers
-
-===== Overview
-
-When using polled consumers, you poll the `PollableMessageSource` on demand.
-Consider the following example of a polled consumer:
-
-[source,java]
-----
-public interface PolledConsumer {
-
- @Input
- PollableMessageSource destIn();
-
- @Output
- MessageChannel destOut();
-
-}
-----
-
-Given the polled consumer in the preceding example, you might use it as follows:
-
-[source,java]
-----
-@Bean
-public ApplicationRunner poller(PollableMessageSource destIn, MessageChannel destOut) {
- return args -> {
- while (someCondition()) {
- try {
- if (!destIn.poll(m -> {
- String newPayload = ((String) m.getPayload()).toUpperCase();
- destOut.send(new GenericMessage<>(newPayload));
- })) {
- Thread.sleep(1000);
- }
- }
- catch (Exception e) {
- // handle failure
- }
- }
- };
-}
-----
-
-A less manual and more Spring-like alternative would be to configure a scheduled task bean. For example,
-
-[source,java]
-----
-
-@Scheduled(fixedDelay = 5_000)
-public void poll() {
- System.out.println("Polling...");
- this.source.poll(m -> {
- System.out.println(m.getPayload());
-
- }, new ParameterizedTypeReference() { });
-}
-----
-
-
-The `PollableMessageSource.poll()` method takes a `MessageHandler` argument (often a lambda expression, as shown here).
-It returns `true` if the message was received and successfully processed.
-
-As with message-driven consumers, if the `MessageHandler` throws an exception, messages are published to error channels,
-as discussed in `<>`.
-
-Normally, the `poll()` method acknowledges the message when the `MessageHandler` exits.
-If the method exits abnormally, the message is rejected (not re-queued), but see <>.
-You can override that behavior by taking responsibility for the acknowledgment, as shown in the following example:
-
-[source,java]
-----
-@Bean
-public ApplicationRunner poller(PollableMessageSource dest1In, MessageChannel dest2Out) {
- return args -> {
- while (someCondition()) {
- if (!dest1In.poll(m -> {
- StaticMessageHeaderAccessor.getAcknowledgmentCallback(m).noAutoAck();
- // e.g. hand off to another thread which can perform the ack
- // or acknowledge(Status.REQUEUE)
-
- })) {
- Thread.sleep(1000);
- }
- }
- };
-}
-----
-
-IMPORTANT: You must `ack` (or `nack`) the message at some point, to avoid resource leaks.
-
-IMPORTANT: Some messaging systems (such as Apache Kafka) maintain a simple offset in a log. If a delivery fails and is re-queued with `StaticMessageHeaderAccessor.getAcknowledgmentCallback(m).acknowledge(Status.REQUEUE);`, any later successfully ack'd messages are redelivered.
-
-There is also an overloaded `poll` method, for which the definition is as follows:
-
-[source,java]
-----
-poll(MessageHandler handler, ParameterizedTypeReference> type)
-----
-
-The `type` is a conversion hint that allows the incoming message payload to be converted, as shown in the following example:
-
-[source,java]
-----
-boolean result = pollableSource.poll(received -> {
- Map payload = (Map) received.getPayload();
- ...
-
- }, new ParameterizedTypeReference