spring-cloud / spring-cloud-contract

Support for Consumer Driven Contracts in Spring
https://cloud.spring.io/spring-cloud-contract
Apache License 2.0
718 stars 439 forks source link

How to load a contract from Git in an integration test? #753

Closed jabrena closed 5 years ago

jabrena commented 5 years ago

Hi,

I am testing how to create an integration test using Spring Cloud Contract but I have some doubts.

In the consumer side, I have a small microservice which in one endpoint connect with a producer modelled with Contracts and stored in a Git repo: https://github.com/jabrena/spring-cloud-contract-git https://github.com/jabrena/spring-cloud-contract-git/tree/master/META-INF/org.jab.microservices/spring-cloud-contract-git-producer-poc/0.1.0-SNAPSHOT/contracts/api/rest

in the microservice repository, I have an integration test which I try to run the stub runner:

@RunWith(SpringRunner.class)
@SpringBootTest
@AutoConfigureMockMvc
@AutoConfigureStubRunner(
        stubsMode = StubRunnerProperties.StubsMode.REMOTE,
        repositoryRoot = "git://https://github.com/jabrena/spring-cloud-contract-git.git",
        ids = { "org.jab.microservices:spring-cloud-contract-git-producer-poc:0.1.0-SNAPSHOT" })
public class IntegrationTests {

    @Autowired
    private MockMvc mvc;

    @Test
    public void whenGetConcept1_thenReturnOk() throws Exception {

        mvc.perform(get("/entrypoint")
                .contentType(APPLICATION_JSON))
                .andExpect(status().isOk());
    }

}

When I execute this tests, I observe that the test, load the git repo but it doesn't find the contracts:

2018-10-17 11:56:22.253  INFO 5204 --- [           main] o.s.cloud.contract.stubrunner.GitRepo    : Cloning repo from [https://github.com/jabrena/spring-cloud-contract-git.git] to [C:\Users\PT02EUd\AppData\Local\Temp\git-contracts1788824939480800128]
2018-10-17 11:56:25.086  INFO 5204 --- [           main] o.s.cloud.contract.stubrunner.GitRepo    : Cloned repo to [C:\Users\PT02EUd\AppData\Local\Temp\git-contracts1788824939480800128]
2018-10-17 11:56:25.102  INFO 5204 --- [           main] o.s.cloud.contract.stubrunner.GitRepo    : Won't check out the same branch. Skipping
2018-10-17 11:56:26.399  INFO 5204 --- [           main] wiremock.org.eclipse.jetty.util.log      : Logging initialized @18167ms
2018-10-17 11:56:26.526  INFO 5204 --- [           main] w.org.eclipse.jetty.server.Server        : jetty-9.2.z-SNAPSHOT
2018-10-17 11:56:26.557  INFO 5204 --- [           main] w.o.e.j.server.handler.ContextHandler    : Started w.o.e.j.s.ServletContextHandler@61da0413{/__admin,null,AVAILABLE}
2018-10-17 11:56:26.557  INFO 5204 --- [           main] w.o.e.j.server.handler.ContextHandler    : Started w.o.e.j.s.ServletContextHandler@2017f6e6{/,null,AVAILABLE}
2018-10-17 11:56:26.573  INFO 5204 --- [           main] w.o.e.j.s.NetworkTrafficServerConnector  : Started NetworkTrafficServerConnector@e3899fd{HTTP/1.1}{0.0.0.0:13717}
2018-10-17 11:56:26.573  INFO 5204 --- [           main] w.org.eclipse.jetty.server.Server        : Started @18349ms
2018-10-17 11:56:26.573  INFO 5204 --- [           main] o.s.c.contract.stubrunner.StubServer     : Started stub server for project [org.jab.microservices:spring-cloud-contract-git-producer-poc:0.1.0-SNAPSHOT:stubs] on port 13717
2018-10-17 11:56:27.206  INFO 5204 --- [tp2059701776-30] /__admin                                 : RequestHandlerClass from context returned com.github.tomakehurst.wiremock.http.AdminRequestHandler. Normalized mapped under returned 'null'
2018-10-17 11:56:27.237  INFO 5204 --- [tp2059701776-30] WireMock                                 : Received request to /mappings with body {
  "id" : "87e2636d-618c-4121-8fc7-3ccedaa873bd",
  "request" : {
    "url" : "/ping",
    "method" : "GET"
  },
  "response" : {
    "status" : 200,
    "body" : "OK"
  },
  "uuid" : "87e2636d-618c-4121-8fc7-3ccedaa873bd"
}
2018-10-17 11:56:27.643  INFO 5204 --- [tp2059701776-31] WireMock                                 : Received request to /mappings with body {
  "id" : "7015a0aa-0681-4e0d-88b1-1cc71625f347",
  "request" : {
    "url" : "/health",
    "method" : "GET"
  },
  "response" : {
    "status" : 200,
    "body" : "OK"
  },
  "uuid" : "7015a0aa-0681-4e0d-88b1-1cc71625f347"
}

But If I use the git repo with the contracts in an isolated project to run them with the stub runner, it run nice: https://github.com/jabrena/spring-cloud-contract-git-stubs-poc

and I can run the stub runner in this way:

mvn clean install –DskipTests
mvn org.springframework.cloud:spring-cloud-contract-maven-plugin:run

What is missing in the configuration of the test:

@AutoConfigureStubRunner(
        stubsMode = StubRunnerProperties.StubsMode.REMOTE,
        repositoryRoot = "git://https://github.com/jabrena/spring-cloud-contract-git.git",
        ids = { "org.jab.microservices:spring-cloud-contract-git-producer-poc:0.1.0-SNAPSHOT" })

Many thanks in advance

Juan Antonio

marcingrzejszczak commented 5 years ago

Can you run the consumer side again but with debug logs, and can you post those logs?

jabrena commented 5 years ago

Hi @marcingrzejszczak,

I send the logs:

2018-10-17 13:45:56.070 DEBUG 11804 --- [           main] o.s.c.c.s.CompositeStubDownloader        : Registered following stub downloaders [org.springframework.cloud.contract.stubrunner.ScmStubDownloaderBuilder, org.springframework.cloud.contract.stubrunner.ClasspathStubProvider, org.springframework.cloud.contract.stubrunner.AetherStubDownloaderBuilder]
2018-10-17 13:45:56.072 DEBUG 11804 --- [           main] o.s.c.c.stubrunner.StubRunnerFactory     : Will download stubs for dependencies [org.jab.microservices:spring-cloud-contract-git-producer-poc:0.1.0-SNAPSHOT:stubs]
2018-10-17 13:45:56.075 DEBUG 11804 --- [           main] o.s.c.c.s.CompositeStubDownloader        : Found a matching stub downloader [org.springframework.cloud.contract.stubrunner.GitStubDownloader]
2018-10-17 13:45:56.077 DEBUG 11804 --- [           main] o.s.c.c.stubrunner.GitStubDownloader     : Trying to find a contract for [org.jab.microservices:spring-cloud-contract-git-producer-poc:0.1.0-SNAPSHOT:stubs]
2018-10-17 13:45:56.082 DEBUG 11804 --- [           main] o.s.c.c.s.GitStubDownloaderProperties    : Repo url is [https://github.com/jabrena/spring-cloud-contract-git.git], modified url string is [https://github.com/jabrena/spring-cloud-contract-git.git] URL is [https://github.com/jabrena/spring-cloud-contract-git.git] and branch is [master]
2018-10-17 13:45:56.222 DEBUG 11804 --- [           main] o.s.c.c.stubrunner.GitRepo$JGitFactory   : No custom credentials provider will be set
2018-10-17 13:45:56.222  INFO 11804 --- [           main] o.s.cloud.contract.stubrunner.GitRepo    : Cloning repo from [https://github.com/jabrena/spring-cloud-contract-git.git] to [C:\Users\PT02EUd\AppData\Local\Temp\git-contracts7057696245441075987]
2018-10-17 13:45:56.222 DEBUG 11804 --- [           main] o.s.cloud.contract.stubrunner.GitRepo    : Project git url [https://github.com/jabrena/spring-cloud-contract-git.git]
2018-10-17 13:46:00.432  INFO 11804 --- [           main] o.s.cloud.contract.stubrunner.GitRepo    : Cloned repo to [C:\Users\PT02EUd\AppData\Local\Temp\git-contracts7057696245441075987]
2018-10-17 13:46:00.442  INFO 11804 --- [           main] o.s.cloud.contract.stubrunner.GitRepo    : Won't check out the same branch. Skipping
2018-10-17 13:46:00.442 DEBUG 11804 --- [           main] o.s.c.c.stubrunner.GitContractsRepo      : The project hasn't already been cloned. Cloned it to [C:\Users\PT02EUd\AppData\Local\Temp\git-contracts7057696245441075987]
2018-10-17 13:46:00.452 DEBUG 11804 --- [           main] o.s.c.c.s.CompositeStubDownloader        : Found a matching entry [org.jab.microservices:spring-cloud-contract-git-producer-poc:0.1.0-SNAPSHOT:stubs=C:\Users\PT02EUd\AppData\Local\Temp\git-contracts7057696245441075987\META-INF\org.jab.microservices\spring-cloud-contract-git-producer-poc\0.1.0-SNAPSHOT] by stub downloader [org.springframework.cloud.contract.stubrunner.GitStubDownloader]
2018-10-17 13:46:00.452 DEBUG 11804 --- [           main] o.s.c.c.stubrunner.StubRunnerFactory     : For stub configuration [org.jab.microservices:spring-cloud-contract-git-producer-poc:0.1.0-SNAPSHOT:stubs] the downloaded entry is [org.jab.microservices:spring-cloud-contract-git-producer-poc:0.1.0-SNAPSHOT:stubs=C:\Users\PT02EUd\AppData\Local\Temp\git-contracts7057696245441075987\META-INF\org.jab.microservices\spring-cloud-contract-git-producer-poc\0.1.0-SNAPSHOT]
2018-10-17 13:46:01.372 DEBUG 11804 --- [           main] o.s.c.c.stubrunner.AvailablePortScanner  : Trying to execute closure with port [10344]
2018-10-17 13:46:01.947  INFO 11804 --- [           main] wiremock.org.eclipse.jetty.util.log      : Logging initialized @14463ms
2018-10-17 13:46:02.107  INFO 11804 --- [           main] w.org.eclipse.jetty.server.Server        : jetty-9.2.z-SNAPSHOT
2018-10-17 13:46:02.152  INFO 11804 --- [           main] w.o.e.j.server.handler.ContextHandler    : Started w.o.e.j.s.ServletContextHandler@3f048c86{/__admin,null,AVAILABLE}
2018-10-17 13:46:02.152  INFO 11804 --- [           main] w.o.e.j.server.handler.ContextHandler    : Started w.o.e.j.s.ServletContextHandler@7e191fda{/,null,AVAILABLE}
2018-10-17 13:46:02.177  INFO 11804 --- [           main] w.o.e.j.s.NetworkTrafficServerConnector  : Started NetworkTrafficServerConnector@3de79067{HTTP/1.1}{0.0.0.0:10344}
2018-10-17 13:46:02.177  INFO 11804 --- [           main] w.org.eclipse.jetty.server.Server        : Started @14692ms
2018-10-17 13:46:02.177  INFO 11804 --- [           main] o.s.c.contract.stubrunner.StubServer     : Started stub server for project [org.jab.microservices:spring-cloud-contract-git-producer-poc:0.1.0-SNAPSHOT:stubs] on port 10344
2018-10-17 13:46:02.742  INFO 11804 --- [qtp556773329-26] /__admin                                 : RequestHandlerClass from context returned com.github.tomakehurst.wiremock.http.AdminRequestHandler. Normalized mapped under returned 'null'
2018-10-17 13:46:02.990  INFO 11804 --- [qtp556773329-26] WireMock                                 : Received request to /mappings with body {
  "id" : "ecf26001-4bf0-4ca9-b0af-bea36182c509",
  "request" : {
    "url" : "/ping",
    "method" : "GET"
  },
  "response" : {
    "status" : 200,
    "body" : "OK"
  },
  "uuid" : "ecf26001-4bf0-4ca9-b0af-bea36182c509"
}
2018-10-17 13:46:03.132  INFO 11804 --- [qtp556773329-33] WireMock                                 : Received request to /mappings with body {
  "id" : "d0566e76-31c2-455f-9ee3-2d9ffea94560",
  "request" : {
    "url" : "/health",
    "method" : "GET"
  },
  "response" : {
    "status" : 200,
    "body" : "OK"
  },
  "uuid" : "d0566e76-31c2-455f-9ee3-2d9ffea94560"
}
2018-10-17 13:46:03.155  INFO 11804 --- [           main] o.s.c.c.stubrunner.StubRunnerExecutor    : All stubs are now running RunningStubs [namesAndPorts={org.jab.microservices:spring-cloud-contract-git-producer-poc:0.1.0-SNAPSHOT:stubs=10344}]
2018-10-17 13:46:03.155 DEBUG 11804 --- [           main] o.s.core.env.StandardEnvironment         : Adding PropertySource 'stubrunner.runningstubs' with highest search precedence
2018-10-17 13:46:03.155 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Eagerly caching bean 'batchStubRunner' to allow for resolving potential circular references
2018-10-17 13:46:03.157 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Finished creating instance of bean 'batchStubRunner'
2018-10-17 13:46:03.160 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Autowiring by type from bean name 'stubFlowRegistrar' via factory method to bean named 'org.springframework.beans.factory.support.DefaultListableBeanFactory@18b0930f'
2018-10-17 13:46:03.160 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Autowiring by type from bean name 'stubFlowRegistrar' via factory method to bean named 'batchStubRunner'
2018-10-17 13:46:03.225 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Eagerly caching bean 'stubFlowRegistrar' to allow for resolving potential circular references
2018-10-17 13:46:03.230 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Finished creating instance of bean 'stubFlowRegistrar'
2018-10-17 13:46:03.230 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Returning cached instance of singleton bean 'org.springframework.cloud.contract.stubrunner.spring.StubRunnerPortBeanPostProcessor'
2018-10-17 13:46:03.230 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Returning cached instance of singleton bean 'org.springframework.cloud.contract.stubrunner.spring.StubRunnerConfiguration'
2018-10-17 13:46:03.230 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Returning cached instance of singleton bean 'batchStubRunner'
2018-10-17 13:46:03.230 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Returning cached instance of singleton bean 'stubrunner-org.springframework.cloud.contract.stubrunner.spring.StubRunnerProperties'
2018-10-17 13:46:03.230 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Returning cached instance of singleton bean 'org.springframework.cloud.contract.verifier.messaging.stream.ContractVerifierStreamAutoConfiguration'
2018-10-17 13:46:03.230 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Returning cached instance of singleton bean 'contractVerifierMessageExchange'
2018-10-17 13:46:03.230 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Creating shared instance of singleton bean 'contractVerifierMessagingConverter'
2018-10-17 13:46:03.230 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Creating instance of bean 'contractVerifierMessagingConverter'
2018-10-17 13:46:03.230 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Returning cached instance of singleton bean 'org.springframework.cloud.contract.verifier.messaging.stream.ContractVerifierStreamAutoConfiguration'
2018-10-17 13:46:03.230 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Returning cached instance of singleton bean 'contractVerifierMessageExchange'
2018-10-17 13:46:03.230 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Autowiring by type from bean name 'contractVerifierMessagingConverter' via factory method to bean named 'contractVerifierMessageExchange'
2018-10-17 13:46:03.232 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Eagerly caching bean 'contractVerifierMessagingConverter' to allow for resolving potential circular references
2018-10-17 13:46:03.235 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Finished creating instance of bean 'contractVerifierMessagingConverter'
2018-10-17 13:46:03.237 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Creating shared instance of singleton bean 'org.springframework.cloud.contract.verifier.messaging.integration.ContractVerifierIntegrationConfiguration'
2018-10-17 13:46:03.237 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Creating instance of bean 'org.springframework.cloud.contract.verifier.messaging.integration.ContractVerifierIntegrationConfiguration'
2018-10-17 13:46:03.237 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Eagerly caching bean 'org.springframework.cloud.contract.verifier.messaging.integration.ContractVerifierIntegrationConfiguration' to allow for resolving potential circular references
2018-10-17 13:46:03.242 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Finished creating instance of bean 'org.springframework.cloud.contract.verifier.messaging.integration.ContractVerifierIntegrationConfiguration'
2018-10-17 13:46:03.242 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Creating shared instance of singleton bean 'org.springframework.cloud.contract.verifier.messaging.noop.NoOpContractVerifierAutoConfiguration'
2018-10-17 13:46:03.242 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Creating instance of bean 'org.springframework.cloud.contract.verifier.messaging.noop.NoOpContractVerifierAutoConfiguration'
2018-10-17 13:46:03.245 DEBUG 11804 --- [           main] o.s.b.f.annotation.InjectionMetadata     : Registered injected element on class [org.springframework.cloud.contract.verifier.messaging.noop.NoOpContractVerifierAutoConfiguration$$EnhancerBySpringCGLIB$$bd609b95]: AutowiredFieldElement for com.fasterxml.jackson.databind.ObjectMapper org.springframework.cloud.contract.verifier.messaging.noop.NoOpContractVerifierAutoConfiguration.objectMapper
2018-10-17 13:46:03.245 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Eagerly caching bean 'org.springframework.cloud.contract.verifier.messaging.noop.NoOpContractVerifierAutoConfiguration' to allow for resolving potential circular references
2018-10-17 13:46:03.252 DEBUG 11804 --- [           main] o.s.b.f.annotation.InjectionMetadata     : Processing injected element of bean 'org.springframework.cloud.contract.verifier.messaging.noop.NoOpContractVerifierAutoConfiguration': AutowiredFieldElement for com.fasterxml.jackson.databind.ObjectMapper org.springframework.cloud.contract.verifier.messaging.noop.NoOpContractVerifierAutoConfiguration.objectMapper
2018-10-17 13:46:03.252 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Returning cached instance of singleton bean 'jacksonObjectMapper'
2018-10-17 13:46:03.252 DEBUG 11804 --- [           main] f.a.AutowiredAnnotationBeanPostProcessor : Autowiring by type from bean name 'org.springframework.cloud.contract.verifier.messaging.noop.NoOpContractVerifierAutoConfiguration' to bean named 'jacksonObjectMapper'
2018-10-17 13:46:03.252 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Finished creating instance of bean 'org.springframework.cloud.contract.verifier.messaging.noop.NoOpContractVerifierAutoConfiguration'
2018-10-17 13:46:03.252 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Creating shared instance of singleton bean 'contractVerifierObjectMapper'
2018-10-17 13:46:03.252 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Creating instance of bean 'contractVerifierObjectMapper'
2018-10-17 13:46:03.252 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Returning cached instance of singleton bean 'org.springframework.cloud.contract.verifier.messaging.noop.NoOpContractVerifierAutoConfiguration'
2018-10-17 13:46:03.257 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Eagerly caching bean 'contractVerifierObjectMapper' to allow for resolving potential circular references
2018-10-17 13:46:03.260 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Finished creating instance of bean 'contractVerifierObjectMapper'
2018-10-17 13:46:03.260 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Returning cached instance of singleton bean 'org.springframework.integration.config.dsl.IntegrationFlowBeanPostProcessor'
2018-10-17 13:46:03.260 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Creating shared instance of singleton bean 'org.springframework.integration.dsl.context.IntegrationFlowContext'
2018-10-17 13:46:03.260 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Creating instance of bean 'org.springframework.integration.dsl.context.IntegrationFlowContext'
2018-10-17 13:46:03.265 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Eagerly caching bean 'org.springframework.integration.dsl.context.IntegrationFlowContext' to allow for resolving potential circular references
2018-10-17 13:46:03.275 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Finished creating instance of bean 'org.springframework.integration.dsl.context.IntegrationFlowContext'
2018-10-17 13:46:03.275 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Returning cached instance of singleton bean 'org.springframework.integration.dsl.IntegrationFlowDefinition$ReplyProducerCleaner'
2018-10-17 13:46:03.275 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Creating shared instance of singleton bean 'nullChannel'
2018-10-17 13:46:03.275 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Creating instance of bean 'nullChannel'
2018-10-17 13:46:03.290 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Eagerly caching bean 'nullChannel' to allow for resolving potential circular references
2018-10-17 13:46:03.312 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Finished creating instance of bean 'nullChannel'
2018-10-17 13:46:03.312 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Creating shared instance of singleton bean 'errorChannel'
2018-10-17 13:46:03.312 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Creating instance of bean 'errorChannel'
2018-10-17 13:46:03.325 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Eagerly caching bean 'errorChannel' to allow for resolving potential circular references
2018-10-17 13:46:03.347 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Invoking afterPropertiesSet() on bean with name 'errorChannel'
2018-10-17 13:46:03.347 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Returning cached instance of singleton bean 'integrationGlobalProperties'
2018-10-17 13:46:03.347 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Returning cached instance of singleton bean 'messageBuilderFactory'
2018-10-17 13:46:03.347 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Returning cached instance of singleton bean 'datatypeChannelMessageConverter'
2018-10-17 13:46:03.357 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Finished creating instance of bean 'errorChannel'
2018-10-17 13:46:03.357 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Creating shared instance of singleton bean '_org.springframework.integration.errorLogger.handler'
2018-10-17 13:46:03.357 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Creating instance of bean '_org.springframework.integration.errorLogger.handler'
2018-10-17 13:46:03.365 DEBUG 11804 --- [           main] org.springframework.beans.BeanUtils      : No property editor [org.springframework.integration.handler.LoggingHandler$LevelEditor] found for type org.springframework.integration.handler.LoggingHandler$Level according to 'Editor' suffix convention
2018-10-17 13:46:03.367 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Eagerly caching bean '_org.springframework.integration.errorLogger.handler' to allow for resolving potential circular references
2018-10-17 13:46:03.385 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Invoking afterPropertiesSet() on bean with name '_org.springframework.integration.errorLogger.handler'
2018-10-17 13:46:03.385 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Returning cached instance of singleton bean 'integrationGlobalProperties'
2018-10-17 13:46:03.385 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Returning cached instance of singleton bean 'messageBuilderFactory'
2018-10-17 13:46:03.385 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Returning cached instance of singleton bean 'integrationEvaluationContext'
2018-10-17 13:46:03.390 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Finished creating instance of bean '_org.springframework.integration.errorLogger.handler'
2018-10-17 13:46:03.390 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Creating shared instance of singleton bean '_org.springframework.integration.errorLogger'
2018-10-17 13:46:03.390 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Creating instance of bean '_org.springframework.integration.errorLogger'
2018-10-17 13:46:03.390 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Eagerly caching bean '_org.springframework.integration.errorLogger' to allow for resolving potential circular references
2018-10-17 13:46:03.400 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Returning cached instance of singleton bean '_org.springframework.integration.errorLogger.handler'
2018-10-17 13:46:03.400 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Invoking afterPropertiesSet() on bean with name '_org.springframework.integration.errorLogger'
2018-10-17 13:46:03.400 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Returning cached instance of singleton bean 'errorChannel'
2018-10-17 13:46:03.400 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Returning cached instance of singleton bean 'integrationGlobalProperties'
2018-10-17 13:46:03.400 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Returning cached instance of singleton bean 'messageBuilderFactory'
2018-10-17 13:46:03.402 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Finished creating instance of bean '_org.springframework.integration.errorLogger'
2018-10-17 13:46:03.402 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Returning cached instance of singleton bean 'taskScheduler'
2018-10-17 13:46:03.402 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Creating shared instance of singleton bean 'org.springframework.integration.config.IdGeneratorConfigurer#0'
2018-10-17 13:46:03.402 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Creating instance of bean 'org.springframework.integration.config.IdGeneratorConfigurer#0'
2018-10-17 13:46:03.402 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Eagerly caching bean 'org.springframework.integration.config.IdGeneratorConfigurer#0' to allow for resolving potential circular references
2018-10-17 13:46:03.405 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Finished creating instance of bean 'org.springframework.integration.config.IdGeneratorConfigurer#0'
2018-10-17 13:46:03.405 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Returning cached instance of singleton bean 'org.springframework.context.event.internalEventListenerFactory'
2018-10-17 13:46:03.452 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Returning cached instance of singleton bean 'nullChannel'
2018-10-17 13:46:03.452 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Returning cached instance of singleton bean 'errorChannel'
2018-10-17 13:46:03.452 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Returning cached instance of singleton bean '_org.springframework.integration.errorLogger.handler'
2018-10-17 13:46:03.462 DEBUG 11804 --- [           main] .s.i.c.GlobalChannelInterceptorProcessor : No global channel interceptors.
2018-10-17 13:46:03.462 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Returning cached instance of singleton bean 'integrationGlobalProperties'
2018-10-17 13:46:03.465 DEBUG 11804 --- [           main] o.s.w.c.s.GenericWebApplicationContext   : Unable to locate LifecycleProcessor with name 'lifecycleProcessor': using default [org.springframework.context.support.DefaultLifecycleProcessor@3a5e2525]
2018-10-17 13:46:03.467 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Returning cached instance of singleton bean 'integrationHeaderChannelRegistry'
2018-10-17 13:46:03.467 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Returning cached instance of singleton bean '_org.springframework.integration.errorLogger'
2018-10-17 13:46:03.467 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Returning cached instance of singleton bean 'lifecycleProcessor'
2018-10-17 13:46:03.470  INFO 11804 --- [           main] o.s.c.support.DefaultLifecycleProcessor  : Starting beans in phase 0
2018-10-17 13:46:03.470 DEBUG 11804 --- [           main] o.s.c.support.DefaultLifecycleProcessor  : Starting bean '_org.springframework.integration.errorLogger' of type [org.springframework.integration.config.ConsumerEndpointFactoryBean]
2018-10-17 13:46:03.470  INFO 11804 --- [           main] o.s.i.endpoint.EventDrivenConsumer       : Adding {logging-channel-adapter:_org.springframework.integration.errorLogger} as a subscriber to the 'errorChannel' channel
2018-10-17 13:46:03.470  INFO 11804 --- [           main] o.s.i.channel.PublishSubscribeChannel    : Channel 'application.errorChannel' has 1 subscriber(s).
2018-10-17 13:46:03.470  INFO 11804 --- [           main] o.s.i.endpoint.EventDrivenConsumer       : started _org.springframework.integration.errorLogger
2018-10-17 13:46:03.470 DEBUG 11804 --- [           main] o.s.c.support.DefaultLifecycleProcessor  : Successfully started bean '_org.springframework.integration.errorLogger'
2018-10-17 13:46:03.472 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Returning cached instance of singleton bean 'org.springframework.boot.autoconfigure.internalCachingMetadataReaderFactory'
2018-10-17 13:46:03.472 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Returning cached instance of singleton bean 'mvcResourceUrlProvider'
2018-10-17 13:46:03.472 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Returning cached instance of singleton bean 'org.springframework.integration.config.IdGeneratorConfigurer#0'
2018-10-17 13:46:03.502 DEBUG 11804 --- [           main] ConditionEvaluationReportLoggingListener : 

============================
CONDITIONS EVALUATION REPORT
============================

Positive matches:
-----------------

   CodecsAutoConfiguration matched:
      - @ConditionalOnClass found required class 'org.springframework.http.codec.CodecConfigurer'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)

   CodecsAutoConfiguration.JacksonCodecConfiguration matched:
      - @ConditionalOnClass found required class 'com.fasterxml.jackson.databind.ObjectMapper'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)

   CodecsAutoConfiguration.JacksonCodecConfiguration#jacksonCodecCustomizer matched:
      - @ConditionalOnBean (types: com.fasterxml.jackson.databind.ObjectMapper; SearchStrategy: all) found bean 'jacksonObjectMapper' (OnBeanCondition)

   ContractVerifierIntegrationConfiguration matched:
      - @ConditionalOnClass found required class 'org.springframework.messaging.Message'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)

   ContractVerifierStreamAutoConfiguration matched:
      - @ConditionalOnClass found required classes 'org.springframework.cloud.stream.annotation.EnableBinding', 'org.springframework.cloud.stream.test.binder.MessageCollector'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)
      - @ConditionalOnProperty (stubrunner.stream.enabled=true) matched (OnPropertyCondition)

   ContractVerifierStreamAutoConfiguration#contractVerifierMessageExchange matched:
      - @ConditionalOnMissingBean (types: org.springframework.cloud.contract.verifier.messaging.MessageVerifier; SearchStrategy: all) did not find any beans (OnBeanCondition)

   ContractVerifierStreamAutoConfiguration#contractVerifierMessagingConverter matched:
      - @ConditionalOnMissingBean (types: org.springframework.cloud.contract.verifier.messaging.internal.ContractVerifierMessaging; SearchStrategy: all) did not find any beans (OnBeanCondition)

   DispatcherServletAutoConfiguration matched:
      - @ConditionalOnClass found required class 'org.springframework.web.servlet.DispatcherServlet'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)
      - found 'session' scope (OnWebApplicationCondition)

   DispatcherServletAutoConfiguration.DispatcherServletConfiguration matched:
      - @ConditionalOnClass found required class 'javax.servlet.ServletRegistration'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)
      - Default DispatcherServlet did not find dispatcher servlet beans (DispatcherServletAutoConfiguration.DefaultDispatcherServletCondition)

   DispatcherServletAutoConfiguration.DispatcherServletRegistrationConfiguration matched:
      - @ConditionalOnClass found required class 'javax.servlet.ServletRegistration'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)
      - DispatcherServlet Registration did not find servlet registration bean (DispatcherServletAutoConfiguration.DispatcherServletRegistrationCondition)

   DispatcherServletAutoConfiguration.DispatcherServletRegistrationConfiguration#dispatcherServletRegistration matched:
      - @ConditionalOnBean (names: dispatcherServlet; types: org.springframework.web.servlet.DispatcherServlet; SearchStrategy: all) found bean 'dispatcherServlet' (OnBeanCondition)

   EmbeddedWebServerFactoryCustomizerAutoConfiguration matched:
      - @ConditionalOnWebApplication (required) found 'session' scope (OnWebApplicationCondition)

   EmbeddedWebServerFactoryCustomizerAutoConfiguration.TomcatWebServerFactoryCustomizerConfiguration matched:
      - @ConditionalOnClass found required classes 'org.apache.catalina.startup.Tomcat', 'org.apache.coyote.UpgradeProtocol'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)

   ErrorMvcAutoConfiguration matched:
      - @ConditionalOnClass found required classes 'javax.servlet.Servlet', 'org.springframework.web.servlet.DispatcherServlet'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)
      - found 'session' scope (OnWebApplicationCondition)

   ErrorMvcAutoConfiguration#basicErrorController matched:
      - @ConditionalOnMissingBean (types: org.springframework.boot.web.servlet.error.ErrorController; SearchStrategy: current) did not find any beans (OnBeanCondition)

   ErrorMvcAutoConfiguration#errorAttributes matched:
      - @ConditionalOnMissingBean (types: org.springframework.boot.web.servlet.error.ErrorAttributes; SearchStrategy: current) did not find any beans (OnBeanCondition)

   ErrorMvcAutoConfiguration.DefaultErrorViewResolverConfiguration#conventionErrorViewResolver matched:
      - @ConditionalOnBean (types: org.springframework.web.servlet.DispatcherServlet; SearchStrategy: all) found bean 'dispatcherServlet'; @ConditionalOnMissingBean (types: org.springframework.boot.autoconfigure.web.servlet.error.DefaultErrorViewResolver; SearchStrategy: all) did not find any beans (OnBeanCondition)

   ErrorMvcAutoConfiguration.WhitelabelErrorViewConfiguration matched:
      - @ConditionalOnProperty (server.error.whitelabel.enabled) matched (OnPropertyCondition)
      - ErrorTemplate Missing did not find error template view (ErrorMvcAutoConfiguration.ErrorTemplateMissingCondition)

   ErrorMvcAutoConfiguration.WhitelabelErrorViewConfiguration#beanNameViewResolver matched:
      - @ConditionalOnMissingBean (types: org.springframework.web.servlet.view.BeanNameViewResolver; SearchStrategy: all) did not find any beans (OnBeanCondition)

   ErrorMvcAutoConfiguration.WhitelabelErrorViewConfiguration#defaultErrorView matched:
      - @ConditionalOnMissingBean (names: error; SearchStrategy: all) did not find any beans (OnBeanCondition)

   GenericCacheConfiguration matched:
      - Cache org.springframework.boot.autoconfigure.cache.GenericCacheConfiguration automatic cache type (CacheCondition)

   HttpEncodingAutoConfiguration matched:
      - @ConditionalOnClass found required class 'org.springframework.web.filter.CharacterEncodingFilter'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)
      - found 'session' scope (OnWebApplicationCondition)
      - @ConditionalOnProperty (spring.http.encoding.enabled) matched (OnPropertyCondition)

   HttpEncodingAutoConfiguration#characterEncodingFilter matched:
      - @ConditionalOnMissingBean (types: org.springframework.web.filter.CharacterEncodingFilter; SearchStrategy: all) did not find any beans (OnBeanCondition)

   HttpMessageConvertersAutoConfiguration matched:
      - @ConditionalOnClass found required class 'org.springframework.http.converter.HttpMessageConverter'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)

   HttpMessageConvertersAutoConfiguration#messageConverters matched:
      - @ConditionalOnMissingBean (types: org.springframework.boot.autoconfigure.http.HttpMessageConverters; SearchStrategy: all) did not find any beans (OnBeanCondition)

   HttpMessageConvertersAutoConfiguration.StringHttpMessageConverterConfiguration matched:
      - @ConditionalOnClass found required class 'org.springframework.http.converter.StringHttpMessageConverter'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)

   HttpMessageConvertersAutoConfiguration.StringHttpMessageConverterConfiguration#stringHttpMessageConverter matched:
      - @ConditionalOnMissingBean (types: org.springframework.http.converter.StringHttpMessageConverter; SearchStrategy: all) did not find any beans (OnBeanCondition)

   IntegrationAutoConfiguration matched:
      - @ConditionalOnClass found required class 'org.springframework.integration.config.EnableIntegration'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)

   IntegrationAutoConfiguration.IntegrationComponentScanConfiguration matched:
      - @ConditionalOnMissingBean (types: org.springframework.integration.gateway.GatewayProxyFactoryBean; SearchStrategy: all) did not find any beans (OnBeanCondition)

   IntegrationAutoConfiguration.IntegrationManagementConfiguration matched:
      - @ConditionalOnClass found required class 'org.springframework.integration.config.EnableIntegrationManagement'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)
      - @ConditionalOnMissingBean (names: integrationManagementConfigurer; types: org.springframework.integration.support.management.IntegrationManagementConfigurer; SearchStrategy: current) did not find any beans (OnBeanCondition)

   JacksonAutoConfiguration matched:
      - @ConditionalOnClass found required class 'com.fasterxml.jackson.databind.ObjectMapper'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)

   JacksonAutoConfiguration.Jackson2ObjectMapperBuilderCustomizerConfiguration matched:
      - @ConditionalOnClass found required class 'org.springframework.http.converter.json.Jackson2ObjectMapperBuilder'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)

   JacksonAutoConfiguration.JacksonObjectMapperBuilderConfiguration matched:
      - @ConditionalOnClass found required class 'org.springframework.http.converter.json.Jackson2ObjectMapperBuilder'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)

   JacksonAutoConfiguration.JacksonObjectMapperBuilderConfiguration#jacksonObjectMapperBuilder matched:
      - @ConditionalOnMissingBean (types: org.springframework.http.converter.json.Jackson2ObjectMapperBuilder; SearchStrategy: all) did not find any beans (OnBeanCondition)

   JacksonAutoConfiguration.JacksonObjectMapperConfiguration matched:
      - @ConditionalOnClass found required class 'org.springframework.http.converter.json.Jackson2ObjectMapperBuilder'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)

   JacksonAutoConfiguration.JacksonObjectMapperConfiguration#jacksonObjectMapper matched:
      - @ConditionalOnMissingBean (types: com.fasterxml.jackson.databind.ObjectMapper; SearchStrategy: all) did not find any beans (OnBeanCondition)

   JacksonAutoConfiguration.ParameterNamesModuleConfiguration matched:
      - @ConditionalOnClass found required class 'com.fasterxml.jackson.module.paramnames.ParameterNamesModule'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)

   JacksonAutoConfiguration.ParameterNamesModuleConfiguration#parameterNamesModule matched:
      - @ConditionalOnMissingBean (types: com.fasterxml.jackson.module.paramnames.ParameterNamesModule; SearchStrategy: all) did not find any beans (OnBeanCondition)

   JacksonHttpMessageConvertersConfiguration.MappingJackson2HttpMessageConverterConfiguration matched:
      - @ConditionalOnClass found required class 'com.fasterxml.jackson.databind.ObjectMapper'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)
      - @ConditionalOnProperty (spring.http.converters.preferred-json-mapper=jackson) matched (OnPropertyCondition)
      - @ConditionalOnBean (types: com.fasterxml.jackson.databind.ObjectMapper; SearchStrategy: all) found bean 'jacksonObjectMapper' (OnBeanCondition)

   JacksonHttpMessageConvertersConfiguration.MappingJackson2HttpMessageConverterConfiguration#mappingJackson2HttpMessageConverter matched:
      - @ConditionalOnMissingBean (types: org.springframework.http.converter.json.MappingJackson2HttpMessageConverter; SearchStrategy: all) did not find any beans (OnBeanCondition)

   MockMvcAutoConfiguration matched:
      - found 'session' scope (OnWebApplicationCondition)

   MockMvcAutoConfiguration#mockMvc matched:
      - @ConditionalOnMissingBean (types: org.springframework.test.web.servlet.MockMvc; SearchStrategy: all) did not find any beans (OnBeanCondition)

   MockMvcAutoConfiguration#mockMvcBuilder matched:
      - @ConditionalOnMissingBean (types: org.springframework.test.web.servlet.MockMvcBuilder; SearchStrategy: all) did not find any beans (OnBeanCondition)

   MockMvcSecurityAutoConfiguration matched:
      - @ConditionalOnProperty (spring.test.mockmvc.secure=true) matched (OnPropertyCondition)

   MultipartAutoConfiguration matched:
      - @ConditionalOnClass found required classes 'javax.servlet.Servlet', 'org.springframework.web.multipart.support.StandardServletMultipartResolver', 'javax.servlet.MultipartConfigElement'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)
      - found 'session' scope (OnWebApplicationCondition)
      - @ConditionalOnProperty (spring.servlet.multipart.enabled) matched (OnPropertyCondition)

   MultipartAutoConfiguration#multipartConfigElement matched:
      - @ConditionalOnMissingBean (types: javax.servlet.MultipartConfigElement,org.springframework.web.multipart.commons.CommonsMultipartResolver; SearchStrategy: all) did not find any beans (OnBeanCondition)

   MultipartAutoConfiguration#multipartResolver matched:
      - @ConditionalOnMissingBean (types: org.springframework.web.multipart.MultipartResolver; SearchStrategy: all) did not find any beans (OnBeanCondition)

   NoOpCacheConfiguration matched:
      - Cache org.springframework.boot.autoconfigure.cache.NoOpCacheConfiguration automatic cache type (CacheCondition)

   NoOpContractVerifierAutoConfiguration#contractVerifierObjectMapper matched:
      - @ConditionalOnMissingBean (types: org.springframework.cloud.contract.verifier.messaging.internal.ContractVerifierObjectMapper; SearchStrategy: all) did not find any beans (OnBeanCondition)

   PersistenceExceptionTranslationAutoConfiguration matched:
      - @ConditionalOnClass found required class 'org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)

   PersistenceExceptionTranslationAutoConfiguration#persistenceExceptionTranslationPostProcessor matched:
      - @ConditionalOnProperty (spring.dao.exceptiontranslation.enabled) matched (OnPropertyCondition)
      - @ConditionalOnMissingBean (types: org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor; SearchStrategy: all) did not find any beans (OnBeanCondition)

   PropertyPlaceholderAutoConfiguration#propertySourcesPlaceholderConfigurer matched:
      - @ConditionalOnMissingBean (types: org.springframework.context.support.PropertySourcesPlaceholderConfigurer; SearchStrategy: current) did not find any beans (OnBeanCondition)

   ReactorCoreAutoConfiguration matched:
      - @ConditionalOnClass found required classes 'reactor.core.publisher.Mono', 'reactor.core.publisher.Flux'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)

   RestTemplateAutoConfiguration matched:
      - @ConditionalOnClass found required class 'org.springframework.web.client.RestTemplate'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)

   RestTemplateAutoConfiguration#restTemplateBuilder matched:
      - @ConditionalOnMissingBean (types: org.springframework.boot.web.client.RestTemplateBuilder; SearchStrategy: all) did not find any beans (OnBeanCondition)

   ServletWebServerFactoryAutoConfiguration matched:
      - @ConditionalOnClass found required class 'javax.servlet.ServletRequest'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)
      - found 'session' scope (OnWebApplicationCondition)

   ServletWebServerFactoryAutoConfiguration#tomcatServletWebServerFactoryCustomizer matched:
      - @ConditionalOnClass found required class 'org.apache.catalina.startup.Tomcat'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)

   ServletWebServerFactoryConfiguration.EmbeddedTomcat matched:
      - @ConditionalOnClass found required classes 'javax.servlet.Servlet', 'org.apache.catalina.startup.Tomcat', 'org.apache.coyote.UpgradeProtocol'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)
      - @ConditionalOnMissingBean (types: org.springframework.boot.web.servlet.server.ServletWebServerFactory; SearchStrategy: current) did not find any beans (OnBeanCondition)

   SimpleCacheConfiguration matched:
      - Cache org.springframework.boot.autoconfigure.cache.SimpleCacheConfiguration automatic cache type (CacheCondition)

   StubRunnerConfiguration matched:
      - @ConditionalOnMissingBean (types: org.springframework.cloud.contract.wiremock.WiremockServerConfiguration; SearchStrategy: all) did not find any beans (OnBeanCondition)

   StubRunnerIntegrationConfiguration matched:
      - @ConditionalOnClass found required class 'org.springframework.integration.dsl.IntegrationFlowBuilder'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)
      - @ConditionalOnProperty (stubrunner.integration.enabled=true) matched (OnPropertyCondition)

   StubRunnerIntegrationConfiguration#stubFlowRegistrar matched:
      - @ConditionalOnMissingBean (names: stubFlowRegistrar; SearchStrategy: all) did not find any beans (OnBeanCondition)

   StubRunnerStreamConfiguration matched:
      - @ConditionalOnClass found required classes 'org.springframework.integration.dsl.IntegrationFlows', 'org.springframework.cloud.stream.annotation.EnableBinding'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)
      - @ConditionalOnProperty (stubrunner.stream.enabled=true) matched (OnPropertyCondition)

   StubRunnerStreamsIntegrationAutoConfiguration.IntegrationRelatedAutoConfiguration matched:
      - @ConditionalOnClass found required class 'org.springframework.boot.autoconfigure.integration.IntegrationAutoConfiguration'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)

   StubRunnerStreamsIntegrationAutoConfiguration.StreamsRelatedAutoConfiguration matched:
      - @ConditionalOnClass found required class 'org.springframework.cloud.stream.test.binder.TestSupportBinderAutoConfiguration'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)

   TransactionAutoConfiguration matched:
      - @ConditionalOnClass found required class 'org.springframework.transaction.PlatformTransactionManager'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)

   TransactionAutoConfiguration#platformTransactionManagerCustomizers matched:
      - @ConditionalOnMissingBean (types: org.springframework.boot.autoconfigure.transaction.TransactionManagerCustomizers; SearchStrategy: all) did not find any beans (OnBeanCondition)

   ValidationAutoConfiguration matched:
      - @ConditionalOnClass found required class 'javax.validation.executable.ExecutableValidator'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)
      - @ConditionalOnResource found location classpath:META-INF/services/javax.validation.spi.ValidationProvider (OnResourceCondition)

   ValidationAutoConfiguration#defaultValidator matched:
      - @ConditionalOnMissingBean (types: javax.validation.Validator; SearchStrategy: all) did not find any beans (OnBeanCondition)

   ValidationAutoConfiguration#methodValidationPostProcessor matched:
      - @ConditionalOnMissingBean (types: org.springframework.validation.beanvalidation.MethodValidationPostProcessor; SearchStrategy: all) did not find any beans (OnBeanCondition)

   WebMvcAutoConfiguration matched:
      - @ConditionalOnClass found required classes 'javax.servlet.Servlet', 'org.springframework.web.servlet.DispatcherServlet', 'org.springframework.web.servlet.config.annotation.WebMvcConfigurer'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)
      - found 'session' scope (OnWebApplicationCondition)
      - @ConditionalOnMissingBean (types: org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; SearchStrategy: all) did not find any beans (OnBeanCondition)

   WebMvcAutoConfiguration#hiddenHttpMethodFilter matched:
      - @ConditionalOnMissingBean (types: org.springframework.web.filter.HiddenHttpMethodFilter; SearchStrategy: all) did not find any beans (OnBeanCondition)

   WebMvcAutoConfiguration#httpPutFormContentFilter matched:
      - @ConditionalOnProperty (spring.mvc.formcontent.putfilter.enabled) matched (OnPropertyCondition)
      - @ConditionalOnMissingBean (types: org.springframework.web.filter.HttpPutFormContentFilter; SearchStrategy: all) did not find any beans (OnBeanCondition)

   WebMvcAutoConfiguration.WebMvcAutoConfigurationAdapter#defaultViewResolver matched:
      - @ConditionalOnMissingBean (types: org.springframework.web.servlet.view.InternalResourceViewResolver; SearchStrategy: all) did not find any beans (OnBeanCondition)

   WebMvcAutoConfiguration.WebMvcAutoConfigurationAdapter#requestContextFilter matched:
      - @ConditionalOnMissingBean (types: org.springframework.web.context.request.RequestContextListener,org.springframework.web.filter.RequestContextFilter; SearchStrategy: all) did not find any beans (OnBeanCondition)

   WebMvcAutoConfiguration.WebMvcAutoConfigurationAdapter#viewResolver matched:
      - @ConditionalOnBean (types: org.springframework.web.servlet.ViewResolver; SearchStrategy: all) found beans 'defaultViewResolver', 'beanNameViewResolver', 'mvcViewResolver'; @ConditionalOnMissingBean (names: viewResolver; types: org.springframework.web.servlet.view.ContentNegotiatingViewResolver; SearchStrategy: all) did not find any beans (OnBeanCondition)

   WebMvcAutoConfiguration.WebMvcAutoConfigurationAdapter.FaviconConfiguration matched:
      - @ConditionalOnProperty (spring.mvc.favicon.enabled) matched (OnPropertyCondition)

   WebSocketServletAutoConfiguration matched:
      - @ConditionalOnClass found required classes 'javax.servlet.Servlet', 'javax.websocket.server.ServerContainer'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)
      - found 'session' scope (OnWebApplicationCondition)

   WebSocketServletAutoConfiguration.TomcatWebSocketConfiguration matched:
      - @ConditionalOnClass found required classes 'org.apache.catalina.startup.Tomcat', 'org.apache.tomcat.websocket.server.WsSci'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)

   WebSocketServletAutoConfiguration.TomcatWebSocketConfiguration#websocketServletWebServerCustomizer matched:
      - @ConditionalOnMissingBean (names: websocketServletWebServerCustomizer; SearchStrategy: all) did not find any beans (OnBeanCondition)

Negative matches:
-----------------

   ActiveMQAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'javax.jms.ConnectionFactory', 'org.apache.activemq.ActiveMQConnectionFactory' (OnClassCondition)

   AopAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'org.aspectj.lang.annotation.Aspect', 'org.aspectj.lang.reflect.Advice', 'org.aspectj.weaver.AnnotatedElement' (OnClassCondition)

   ArtemisAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'javax.jms.ConnectionFactory', 'org.apache.activemq.artemis.jms.client.ActiveMQConnectionFactory' (OnClassCondition)

   BatchAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'org.springframework.batch.core.launch.JobLauncher', 'org.springframework.jdbc.core.JdbcOperations' (OnClassCondition)

   BindersHealthIndicatorAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.boot.actuate.health.HealthIndicator' (OnClassCondition)

   BindingsEndpointAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.boot.actuate.endpoint.annotation.Endpoint' (OnClassCondition)

   CacheAutoConfiguration:
      Did not match:
         - @ConditionalOnBean (types: org.springframework.cache.interceptor.CacheAspectSupport; SearchStrategy: all) did not find any beans of type org.springframework.cache.interceptor.CacheAspectSupport (OnBeanCondition)
      Matched:
         - @ConditionalOnClass found required class 'org.springframework.cache.CacheManager'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)

   CacheAutoConfiguration.CacheManagerJpaDependencyConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean' (OnClassCondition)
         - Ancestor org.springframework.boot.autoconfigure.cache.CacheAutoConfiguration did not match (ConditionEvaluationReport.AncestorsMatchedCondition)

   CaffeineCacheConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'com.github.benmanes.caffeine.cache.Caffeine', 'org.springframework.cache.caffeine.CaffeineCacheManager' (OnClassCondition)

   CassandraAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'com.datastax.driver.core.Cluster' (OnClassCondition)

   CassandraDataAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'com.datastax.driver.core.Cluster', 'org.springframework.data.cassandra.core.CassandraAdminOperations' (OnClassCondition)

   CassandraReactiveDataAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'com.datastax.driver.core.Cluster', 'org.springframework.data.cassandra.core.ReactiveCassandraTemplate' (OnClassCondition)

   CassandraReactiveRepositoriesAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'org.springframework.data.cassandra.ReactiveSession', 'org.springframework.data.cassandra.repository.ReactiveCassandraRepository' (OnClassCondition)

   CassandraRepositoriesAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'com.datastax.driver.core.Session', 'org.springframework.data.cassandra.repository.CassandraRepository' (OnClassCondition)

   ChannelBindingAutoConfiguration:
      Did not match:
         - @ConditionalOnBean (types: org.springframework.cloud.stream.binding.BindingService; SearchStrategy: all) did not find any beans of type org.springframework.cloud.stream.binding.BindingService (OnBeanCondition)

   ChannelsEndpointAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.boot.actuate.endpoint.annotation.Endpoint' (OnClassCondition)

   CloudAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.cloud.config.java.CloudScanConfiguration' (OnClassCondition)

   ContractVerifierAmqpAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.amqp.rabbit.core.RabbitTemplate' (OnClassCondition)

   ContractVerifierIntegrationConfiguration#contractVerifierMessageExchange:
      Did not match:
         - @ConditionalOnMissingBean (types: org.springframework.cloud.contract.verifier.messaging.MessageVerifier; SearchStrategy: all) found beans of type 'org.springframework.cloud.contract.verifier.messaging.MessageVerifier' contractVerifierMessageExchange (OnBeanCondition)

   ContractVerifierIntegrationConfiguration#contractVerifierMessaging:
      Did not match:
         - @ConditionalOnMissingBean (types: org.springframework.cloud.contract.verifier.messaging.internal.ContractVerifierMessaging; SearchStrategy: all) found beans of type 'org.springframework.cloud.contract.verifier.messaging.internal.ContractVerifierMessaging' contractVerifierMessagingConverter (OnBeanCondition)

   CouchbaseAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'com.couchbase.client.java.CouchbaseBucket', 'com.couchbase.client.java.Cluster' (OnClassCondition)

   CouchbaseCacheConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'com.couchbase.client.java.Bucket', 'com.couchbase.client.spring.cache.CouchbaseCacheManager' (OnClassCondition)

   CouchbaseDataAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'com.couchbase.client.java.Bucket', 'org.springframework.data.couchbase.repository.CouchbaseRepository' (OnClassCondition)

   CouchbaseReactiveDataAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'com.couchbase.client.java.Bucket', 'org.springframework.data.couchbase.repository.ReactiveCouchbaseRepository' (OnClassCondition)

   CouchbaseReactiveRepositoriesAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'com.couchbase.client.java.Bucket', 'org.springframework.data.couchbase.repository.ReactiveCouchbaseRepository' (OnClassCondition)

   CouchbaseRepositoriesAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'com.couchbase.client.java.Bucket', 'org.springframework.data.couchbase.repository.CouchbaseRepository' (OnClassCondition)

   DataSourceAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType' (OnClassCondition)

   DataSourceTransactionManagerAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.jdbc.core.JdbcTemplate' (OnClassCondition)

   DispatcherServletAutoConfiguration.DispatcherServletConfiguration#multipartResolver:
      Did not match:
         - @ConditionalOnBean (types: org.springframework.web.multipart.MultipartResolver; SearchStrategy: all) did not find any beans of type org.springframework.web.multipart.MultipartResolver (OnBeanCondition)

   EhCacheCacheConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'net.sf.ehcache.Cache', 'org.springframework.cache.ehcache.EhCacheCacheManager' (OnClassCondition)

   ElasticsearchAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'org.elasticsearch.client.Client', 'org.springframework.data.elasticsearch.client.TransportClientFactoryBean' (OnClassCondition)

   ElasticsearchDataAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'org.elasticsearch.client.Client', 'org.springframework.data.elasticsearch.core.ElasticsearchTemplate' (OnClassCondition)

   ElasticsearchRepositoriesAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'org.elasticsearch.client.Client', 'org.springframework.data.elasticsearch.repository.ElasticsearchRepository' (OnClassCondition)

   EmbeddedLdapAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'com.unboundid.ldap.listener.InMemoryDirectoryServer' (OnClassCondition)

   EmbeddedMongoAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'com.mongodb.MongoClient', 'de.flapdoodle.embed.mongo.MongodStarter' (OnClassCondition)

   EmbeddedWebServerFactoryCustomizerAutoConfiguration.JettyWebServerFactoryCustomizerConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'org.eclipse.jetty.server.Server', 'org.eclipse.jetty.util.Loader', 'org.eclipse.jetty.webapp.WebAppContext' (OnClassCondition)

   EmbeddedWebServerFactoryCustomizerAutoConfiguration.UndertowWebServerFactoryCustomizerConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'io.undertow.Undertow', 'org.xnio.SslClientAuthMode' (OnClassCondition)

   ErrorWebFluxAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.web.reactive.config.WebFluxConfigurer' (OnClassCondition)

   FlywayAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.flywaydb.core.Flyway' (OnClassCondition)

   FreeMarkerAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'freemarker.template.Configuration', 'org.springframework.ui.freemarker.FreeMarkerConfigurationFactory' (OnClassCondition)

   GroovyTemplateAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'groovy.text.markup.MarkupTemplateEngine' (OnClassCondition)

   GsonAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'com.google.gson.Gson' (OnClassCondition)

   GsonHttpMessageConvertersConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'com.google.gson.Gson' (OnClassCondition)

   H2ConsoleAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.h2.server.web.WebServlet' (OnClassCondition)

   HazelcastAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'com.hazelcast.core.HazelcastInstance' (OnClassCondition)

   HazelcastCacheConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'com.hazelcast.core.HazelcastInstance', 'com.hazelcast.spring.cache.HazelcastCacheManager' (OnClassCondition)

   HazelcastJpaDependencyAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'com.hazelcast.core.HazelcastInstance', 'org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean' (OnClassCondition)

   HibernateJpaAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean', 'javax.persistence.EntityManager' (OnClassCondition)

   HttpHandlerAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.web.reactive.DispatcherHandler' (OnClassCondition)

   HypermediaAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'org.springframework.hateoas.Resource', 'org.springframework.plugin.core.Plugin' (OnClassCondition)

   InfinispanCacheConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.infinispan.spring.provider.SpringEmbeddedCacheManager' (OnClassCondition)

   InfluxDbAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.influxdb.InfluxDB' (OnClassCondition)

   IntegrationAutoConfiguration.IntegrationJdbcConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.integration.jdbc.store.JdbcMessageStore' (OnClassCondition)

   IntegrationAutoConfiguration.IntegrationJmxConfiguration:
      Did not match:
         - @ConditionalOnProperty (spring.jmx.enabled=true) found different value in property 'enabled' (OnPropertyCondition)
      Matched:
         - @ConditionalOnClass found required class 'org.springframework.integration.jmx.config.EnableIntegrationMBeanExport'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)

   JCacheCacheConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'javax.cache.Caching', 'org.springframework.cache.jcache.JCacheCacheManager' (OnClassCondition)

   JacksonAutoConfiguration.JodaDateTimeJacksonConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'org.joda.time.DateTime', 'com.fasterxml.jackson.datatype.joda.ser.DateTimeSerializer', 'com.fasterxml.jackson.datatype.joda.cfg.JacksonJodaDateFormat' (OnClassCondition)

   JacksonHttpMessageConvertersConfiguration.MappingJackson2XmlHttpMessageConverterConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'com.fasterxml.jackson.dataformat.xml.XmlMapper' (OnClassCondition)

   JdbcTemplateAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.jdbc.core.JdbcTemplate' (OnClassCondition)

   JerseyAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.glassfish.jersey.server.spring.SpringComponentProvider' (OnClassCondition)

   JestAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'io.searchbox.client.JestClient' (OnClassCondition)

   JmsAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'javax.jms.Message', 'org.springframework.jms.core.JmsTemplate' (OnClassCondition)

   JmxAutoConfiguration:
      Did not match:
         - @ConditionalOnProperty (spring.jmx.enabled=true) found different value in property 'enabled' (OnPropertyCondition)
      Matched:
         - @ConditionalOnClass found required class 'org.springframework.jmx.export.MBeanExporter'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)

   JndiConnectionFactoryAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.jms.core.JmsTemplate' (OnClassCondition)

   JndiDataSourceAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType' (OnClassCondition)

   JooqAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.jooq.DSLContext' (OnClassCondition)

   JpaRepositoriesAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.data.jpa.repository.JpaRepository' (OnClassCondition)

   JsonbAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'javax.json.bind.Jsonb' (OnClassCondition)

   JsonbHttpMessageConvertersConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'javax.json.bind.Jsonb' (OnClassCondition)

   JtaAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'javax.transaction.Transaction' (OnClassCondition)

   KafkaAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.kafka.core.KafkaTemplate' (OnClassCondition)

   LdapAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.ldap.core.ContextSource' (OnClassCondition)

   LdapDataAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.data.ldap.repository.LdapRepository' (OnClassCondition)

   LdapRepositoriesAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.data.ldap.repository.LdapRepository' (OnClassCondition)

   LiquibaseAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'liquibase.integration.spring.SpringLiquibase', 'liquibase.change.DatabaseChange' (OnClassCondition)

   MailSenderAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'javax.mail.internet.MimeMessage', 'org.springframework.mail.MailSender' (OnClassCondition)

   MailSenderValidatorAutoConfiguration:
      Did not match:
         - @ConditionalOnProperty (spring.mail.test-connection) did not find property 'test-connection' (OnPropertyCondition)

   MessageSourceAutoConfiguration:
      Did not match:
         - ResourceBundle did not find bundle with basename messages (MessageSourceAutoConfiguration.ResourceBundleCondition)

   MockMvcAutoConfiguration#dispatcherServletPath:
      Did not match:
         - @ConditionalOnMissingBean (types: org.springframework.boot.autoconfigure.web.servlet.DispatcherServletPath; SearchStrategy: all) found beans of type 'org.springframework.boot.autoconfigure.web.servlet.DispatcherServletPath' dispatcherServletRegistration (OnBeanCondition)

   MockMvcSecurityConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors' (OnClassCondition)

   MockMvcWebClientAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'com.gargoylesoftware.htmlunit.WebClient' (OnClassCondition)

   MockMvcWebDriverAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.openqa.selenium.htmlunit.HtmlUnitDriver' (OnClassCondition)

   MongoAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'com.mongodb.MongoClient' (OnClassCondition)

   MongoDataAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'com.mongodb.MongoClient', 'org.springframework.data.mongodb.core.MongoTemplate' (OnClassCondition)

   MongoReactiveAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'com.mongodb.reactivestreams.client.MongoClient' (OnClassCondition)

   MongoReactiveDataAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'com.mongodb.reactivestreams.client.MongoClient', 'org.springframework.data.mongodb.core.ReactiveMongoTemplate' (OnClassCondition)

   MongoReactiveRepositoriesAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'com.mongodb.reactivestreams.client.MongoClient', 'org.springframework.data.mongodb.repository.ReactiveMongoRepository' (OnClassCondition)

   MongoRepositoriesAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'com.mongodb.MongoClient', 'org.springframework.data.mongodb.repository.MongoRepository' (OnClassCondition)

   MustacheAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'com.samskivert.mustache.Mustache' (OnClassCondition)

   Neo4jDataAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'org.neo4j.ogm.session.SessionFactory', 'org.springframework.data.neo4j.transaction.Neo4jTransactionManager' (OnClassCondition)

   Neo4jRepositoriesAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'org.neo4j.ogm.session.Neo4jSession', 'org.springframework.data.neo4j.repository.Neo4jRepository' (OnClassCondition)

   NoOpContractVerifierAutoConfiguration#contractVerifierMessageExchange:
      Did not match:
         - @ConditionalOnMissingBean (types: org.springframework.cloud.contract.verifier.messaging.MessageVerifier; SearchStrategy: all) found beans of type 'org.springframework.cloud.contract.verifier.messaging.MessageVerifier' contractVerifierMessageExchange (OnBeanCondition)

   NoOpContractVerifierAutoConfiguration#contractVerifierMessaging:
      Did not match:
         - @ConditionalOnMissingBean (types: org.springframework.cloud.contract.verifier.messaging.internal.ContractVerifierMessaging; SearchStrategy: all) found beans of type 'org.springframework.cloud.contract.verifier.messaging.internal.ContractVerifierMessaging' contractVerifierMessagingConverter (OnBeanCondition)

   OAuth2ClientAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'org.springframework.security.config.annotation.web.configuration.EnableWebSecurity', 'org.springframework.security.oauth2.client.registration.ClientRegistration' (OnClassCondition)

   ProjectInfoAutoConfiguration#buildProperties:
      Did not match:
         - @ConditionalOnResource did not find resource '${spring.info.build.location:classpath:META-INF/build-info.properties}' (OnResourceCondition)

   ProjectInfoAutoConfiguration#gitProperties:
      Did not match:
         - GitResource did not find git info at classpath:git.properties (ProjectInfoAutoConfiguration.GitResourceAvailableCondition)

   QuartzAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'org.quartz.Scheduler', 'org.springframework.scheduling.quartz.SchedulerFactoryBean' (OnClassCondition)

   RabbitAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'org.springframework.amqp.rabbit.core.RabbitTemplate', 'com.rabbitmq.client.Channel' (OnClassCondition)

   RabbitMockConnectionFactoryAutoConfiguration:
      Did not match:
         - @ConditionalOnBean (types: org.springframework.cloud.contract.verifier.messaging.amqp.ContractVerifierAmqpAutoConfiguration; SearchStrategy: all) did not find any beans of type org.springframework.cloud.contract.verifier.messaging.amqp.ContractVerifierAmqpAutoConfiguration (OnBeanCondition)
      Matched:
         - @ConditionalOnProperty (stubrunner.amqp.mockConnection=true) matched (OnPropertyCondition)

   ReactiveSecurityAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'org.springframework.security.config.annotation.web.reactive.EnableWebFluxSecurity', 'org.springframework.security.web.server.WebFilterChainProxy' (OnClassCondition)

   ReactiveUserDetailsServiceAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.security.authentication.ReactiveAuthenticationManager' (OnClassCondition)

   ReactiveWebServerFactoryAutoConfiguration:
      Did not match:
         - not a reactive web application (OnWebApplicationCondition)
      Matched:
         - @ConditionalOnClass found required class 'org.springframework.http.ReactiveHttpInputMessage'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)

   RedisAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.data.redis.core.RedisOperations' (OnClassCondition)

   RedisCacheConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.data.redis.connection.RedisConnectionFactory' (OnClassCondition)

   RedisReactiveAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'org.springframework.data.redis.connection.ReactiveRedisConnectionFactory', 'org.springframework.data.redis.core.ReactiveRedisTemplate' (OnClassCondition)

   RedisRepositoriesAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.data.redis.repository.configuration.EnableRedisRepositories' (OnClassCondition)

   RepositoryRestMvcAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.data.rest.webmvc.config.RepositoryRestMvcConfiguration' (OnClassCondition)

   SecurityAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.security.authentication.DefaultAuthenticationEventPublisher' (OnClassCondition)

   SecurityFilterAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'org.springframework.security.web.context.AbstractSecurityWebApplicationInitializer', 'org.springframework.security.config.http.SessionCreationPolicy' (OnClassCondition)

   SecurityRequestMatcherProviderAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.security.web.util.matcher.RequestMatcher' (OnClassCondition)

   SendGridAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'com.sendgrid.SendGrid' (OnClassCondition)

   ServletWebServerFactoryConfiguration.EmbeddedJetty:
      Did not match:
         - @ConditionalOnClass did not find required classes 'org.eclipse.jetty.server.Server', 'org.eclipse.jetty.util.Loader', 'org.eclipse.jetty.webapp.WebAppContext' (OnClassCondition)

   ServletWebServerFactoryConfiguration.EmbeddedUndertow:
      Did not match:
         - @ConditionalOnClass did not find required classes 'io.undertow.Undertow', 'org.xnio.SslClientAuthMode' (OnClassCondition)

   SessionAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.session.Session' (OnClassCondition)

   SolrAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'org.apache.solr.client.solrj.impl.HttpSolrClient', 'org.apache.solr.client.solrj.impl.CloudSolrClient' (OnClassCondition)

   SolrRepositoriesAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'org.apache.solr.client.solrj.SolrClient', 'org.springframework.data.solr.repository.SolrRepository' (OnClassCondition)

   SpringApplicationAdminJmxAutoConfiguration:
      Did not match:
         - @ConditionalOnProperty (spring.application.admin.enabled=true) did not find property 'enabled' (OnPropertyCondition)

   SpringDataWebAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.data.web.PageableHandlerMethodArgumentResolver' (OnClassCondition)

   StubRunnerRibbonAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'com.netflix.loadbalancer.ServerList' (OnClassCondition)

   StubRunnerSpringCloudAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.cloud.client.discovery.DiscoveryClient' (OnClassCondition)

   StubRunnerSpringCloudConsulAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'com.ecwid.consul.v1.ConsulClient' (OnClassCondition)

   StubRunnerSpringCloudEurekaAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.cloud.netflix.eureka.CloudEurekaClient' (OnClassCondition)

   StubRunnerSpringCloudZookeeperAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.apache.curator.x.discovery.ServiceInstance' (OnClassCondition)

   StubRunnerStreamConfiguration#stubFlowRegistrar:
      Did not match:
         - @ConditionalOnBean (types: org.springframework.cloud.stream.config.BindingServiceProperties; SearchStrategy: all) did not find any beans of type org.springframework.cloud.stream.config.BindingServiceProperties (OnBeanCondition)

   ThymeleafAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.thymeleaf.templatemode.TemplateMode' (OnClassCondition)

   TransactionAutoConfiguration.EnableTransactionManagementConfiguration:
      Did not match:
         - @ConditionalOnBean (types: org.springframework.transaction.PlatformTransactionManager; SearchStrategy: all) did not find any beans of type org.springframework.transaction.PlatformTransactionManager (OnBeanCondition)

   TransactionAutoConfiguration.EnableTransactionManagementConfiguration.CglibAutoProxyConfiguration:
      Did not match:
         - Ancestor org.springframework.boot.autoconfigure.transaction.TransactionAutoConfiguration$EnableTransactionManagementConfiguration did not match (ConditionEvaluationReport.AncestorsMatchedCondition)
      Matched:
         - @ConditionalOnProperty (spring.aop.proxy-target-class=true) matched (OnPropertyCondition)

   TransactionAutoConfiguration.EnableTransactionManagementConfiguration.JdkDynamicAutoProxyConfiguration:
      Did not match:
         - @ConditionalOnProperty (spring.aop.proxy-target-class=false) did not find property 'proxy-target-class' (OnPropertyCondition)
         - Ancestor org.springframework.boot.autoconfigure.transaction.TransactionAutoConfiguration$EnableTransactionManagementConfiguration did not match (ConditionEvaluationReport.AncestorsMatchedCondition)

   TransactionAutoConfiguration.TransactionTemplateConfiguration:
      Did not match:
         - @ConditionalOnSingleCandidate (types: org.springframework.transaction.PlatformTransactionManager; SearchStrategy: all) did not find any beans (OnBeanCondition)

   UserDetailsServiceAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.security.authentication.AuthenticationManager' (OnClassCondition)

   WebClientAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.web.reactive.function.client.WebClient' (OnClassCondition)

   WebFluxAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.web.reactive.config.WebFluxConfigurer' (OnClassCondition)

   WebMvcAutoConfiguration.ResourceChainCustomizerConfiguration:
      Did not match:
         - @ConditionalOnEnabledResourceChain did not find class org.webjars.WebJarAssetLocator (OnEnabledResourceChainCondition)

   WebMvcAutoConfiguration.WebMvcAutoConfigurationAdapter#beanNameViewResolver:
      Did not match:
         - @ConditionalOnMissingBean (types: org.springframework.web.servlet.view.BeanNameViewResolver; SearchStrategy: all) found beans of type 'org.springframework.web.servlet.view.BeanNameViewResolver' beanNameViewResolver (OnBeanCondition)

   WebMvcAutoConfiguration.WebMvcAutoConfigurationAdapter#localeResolver:
      Did not match:
         - @ConditionalOnProperty (spring.mvc.locale) did not find property 'locale' (OnPropertyCondition)

   WebServicesAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.ws.transport.http.MessageDispatcherServlet' (OnClassCondition)

   WebSocketMessagingAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.springframework.web.socket.config.annotation.WebSocketMessageBrokerConfigurer' (OnClassCondition)

   WebSocketReactiveAutoConfiguration:
      Did not match:
         - not a reactive web application (OnWebApplicationCondition)
      Matched:
         - @ConditionalOnClass found required classes 'javax.servlet.Servlet', 'javax.websocket.server.ServerContainer'; @ConditionalOnMissingClass did not find unwanted class (OnClassCondition)

   WebSocketServletAutoConfiguration.JettyWebSocketConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'org.eclipse.jetty.websocket.jsr356.server.deploy.WebSocketServerContainerInitializer' (OnClassCondition)

   WebSocketServletAutoConfiguration.UndertowWebSocketConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required class 'io.undertow.websockets.jsr.Bootstrap' (OnClassCondition)

   XADataSourceAutoConfiguration:
      Did not match:
         - @ConditionalOnClass did not find required classes 'javax.transaction.TransactionManager', 'org.springframework.jdbc.datasource.embedded.EmbeddedDatabaseType' (OnClassCondition)

Exclusions:
-----------

    None

Unconditional classes:
----------------------

    org.springframework.cloud.stream.test.binder.MessageCollectorAutoConfiguration

    org.springframework.cloud.stream.test.binder.TestSupportBinderAutoConfiguration

2018-10-17 13:46:03.507 DEBUG 11804 --- [           main] o.s.w.s.resource.ResourceUrlProvider     : Looking for resource handler mappings
2018-10-17 13:46:03.510 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Returning cached instance of singleton bean 'faviconHandlerMapping'
2018-10-17 13:46:03.510 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Returning cached instance of singleton bean 'resourceHandlerMapping'
2018-10-17 13:46:03.512 DEBUG 11804 --- [           main] o.s.w.s.resource.ResourceUrlProvider     : Found resource handler mapping: URL pattern="/**/favicon.ico", locations=[class path resource [META-INF/resources/], class path resource [resources/], class path resource [static/], class path resource [public/], ServletContext resource [/], class path resource []], resolvers=[org.springframework.web.servlet.resource.PathResourceResolver@2fac80a8]
2018-10-17 13:46:03.512 DEBUG 11804 --- [           main] o.s.w.s.resource.ResourceUrlProvider     : Found resource handler mapping: URL pattern="/webjars/**", locations=[class path resource [META-INF/resources/webjars/]], resolvers=[org.springframework.web.servlet.resource.PathResourceResolver@6987a133]
2018-10-17 13:46:03.512 DEBUG 11804 --- [           main] o.s.w.s.resource.ResourceUrlProvider     : Found resource handler mapping: URL pattern="/**", locations=[class path resource [META-INF/resources/], class path resource [resources/], class path resource [static/], class path resource [public/], ServletContext resource [/]], resolvers=[org.springframework.web.servlet.resource.PathResourceResolver@50778bde]
2018-10-17 13:46:03.515 DEBUG 11804 --- [           main] o.s.c.e.PropertySourcesPropertyResolver  : Could not find key 'spring.liveBeansView.mbeanDomain' in any property source
2018-10-17 13:46:03.517  INFO 11804 --- [           main] org.jab.microservices.IntegrationTests   : Started IntegrationTests in 13.987 seconds (JVM running for 16.033)
2018-10-17 13:46:03.522 DEBUG 11804 --- [           main] c.DefaultCacheAwareContextLoaderDelegate : Storing ApplicationContext in cache under key [[WebMergedContextConfiguration@5c671d7f testClass = IntegrationTests, locations = '{}', classes = '{class org.jab.microservices.MainApplication}', contextInitializerClasses = '[]', activeProfiles = '{}', propertySourceLocations = '{}', propertySourceProperties = '{org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true}', contextCustomizers = set[[ImportsContextCustomizer@757277dc key = [org.springframework.boot.test.autoconfigure.web.servlet.MockMvcAutoConfiguration, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcSecurityAutoConfiguration, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcWebClientAutoConfiguration, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcWebDriverAutoConfiguration, org.springframework.cloud.contract.stubrunner.spring.StubRunnerConfiguration, org.springframework.cloud.contract.stubrunner.spring.cloud.StubRunnerSpringCloudAutoConfiguration, org.springframework.cloud.contract.stubrunner.spring.cloud.ribbon.StubRunnerRibbonAutoConfiguration, org.springframework.cloud.contract.stubrunner.messaging.stream.StubRunnerStreamConfiguration, org.springframework.cloud.contract.stubrunner.messaging.integration.StubRunnerIntegrationConfiguration, org.springframework.cloud.contract.stubrunner.spring.cloud.zookeeper.StubRunnerSpringCloudZookeeperAutoConfiguration, org.springframework.cloud.contract.stubrunner.spring.cloud.eureka.StubRunnerSpringCloudEurekaAutoConfiguration, org.springframework.cloud.contract.stubrunner.spring.cloud.consul.StubRunnerSpringCloudConsulAutoConfiguration, org.springframework.cloud.contract.stubrunner.messaging.StubRunnerStreamsIntegrationAutoConfiguration, org.springframework.cloud.contract.verifier.messaging.stream.ContractVerifierStreamAutoConfiguration, org.springframework.cloud.contract.verifier.messaging.integration.ContractVerifierIntegrationConfiguration, org.springframework.cloud.contract.verifier.messaging.amqp.ContractVerifierAmqpAutoConfiguration, org.springframework.cloud.contract.verifier.messaging.amqp.RabbitMockConnectionFactoryAutoConfiguration, org.springframework.cloud.contract.verifier.messaging.noop.NoOpContractVerifierAutoConfiguration]], org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@2f8f5f62, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@5fcd892a, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.web.client.TestRestTemplateContextCustomizer@2473b9ce, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@5527c9b9, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizerFactory$Customizer@40f08448], resourceBasePath = 'src/main/webapp', contextLoader = 'org.springframework.boot.test.context.SpringBootContextLoader', parent = [null]]]
2018-10-17 13:46:03.522 DEBUG 11804 --- [           main] org.springframework.test.context.cache   : Spring test ApplicationContext cache statistics: [DefaultContextCache@1ac0cdb0 size = 1, maxSize = 32, parentContextCount = 0, hitCount = 0, missCount = 1]
2018-10-17 13:46:03.522 DEBUG 11804 --- [           main] o.s.t.c.w.ServletTestExecutionListener   : Setting up MockHttpServletRequest, MockHttpServletResponse, ServletWebRequest, and RequestContextHolder for test context [DefaultTestContext@49e5f737 testClass = IntegrationTests, testInstance = org.jab.microservices.IntegrationTests@d969452, testMethod = [null], testException = [null], mergedContextConfiguration = [WebMergedContextConfiguration@5c671d7f testClass = IntegrationTests, locations = '{}', classes = '{class org.jab.microservices.MainApplication}', contextInitializerClasses = '[]', activeProfiles = '{}', propertySourceLocations = '{}', propertySourceProperties = '{org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true}', contextCustomizers = set[[ImportsContextCustomizer@757277dc key = [org.springframework.boot.test.autoconfigure.web.servlet.MockMvcAutoConfiguration, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcSecurityAutoConfiguration, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcWebClientAutoConfiguration, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcWebDriverAutoConfiguration, org.springframework.cloud.contract.stubrunner.spring.StubRunnerConfiguration, org.springframework.cloud.contract.stubrunner.spring.cloud.StubRunnerSpringCloudAutoConfiguration, org.springframework.cloud.contract.stubrunner.spring.cloud.ribbon.StubRunnerRibbonAutoConfiguration, org.springframework.cloud.contract.stubrunner.messaging.stream.StubRunnerStreamConfiguration, org.springframework.cloud.contract.stubrunner.messaging.integration.StubRunnerIntegrationConfiguration, org.springframework.cloud.contract.stubrunner.spring.cloud.zookeeper.StubRunnerSpringCloudZookeeperAutoConfiguration, org.springframework.cloud.contract.stubrunner.spring.cloud.eureka.StubRunnerSpringCloudEurekaAutoConfiguration, org.springframework.cloud.contract.stubrunner.spring.cloud.consul.StubRunnerSpringCloudConsulAutoConfiguration, org.springframework.cloud.contract.stubrunner.messaging.StubRunnerStreamsIntegrationAutoConfiguration, org.springframework.cloud.contract.verifier.messaging.stream.ContractVerifierStreamAutoConfiguration, org.springframework.cloud.contract.verifier.messaging.integration.ContractVerifierIntegrationConfiguration, org.springframework.cloud.contract.verifier.messaging.amqp.ContractVerifierAmqpAutoConfiguration, org.springframework.cloud.contract.verifier.messaging.amqp.RabbitMockConnectionFactoryAutoConfiguration, org.springframework.cloud.contract.verifier.messaging.noop.NoOpContractVerifierAutoConfiguration]], org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@2f8f5f62, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@5fcd892a, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.web.client.TestRestTemplateContextCustomizer@2473b9ce, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@5527c9b9, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizerFactory$Customizer@40f08448], resourceBasePath = 'src/main/webapp', contextLoader = 'org.springframework.boot.test.context.SpringBootContextLoader', parent = [null]], attributes = map['org.springframework.test.context.web.ServletTestExecutionListener.activateListener' -> true]].
2018-10-17 13:46:03.547 DEBUG 11804 --- [           main] DependencyInjectionTestExecutionListener : Performing dependency injection for test context [[DefaultTestContext@49e5f737 testClass = IntegrationTests, testInstance = org.jab.microservices.IntegrationTests@d969452, testMethod = [null], testException = [null], mergedContextConfiguration = [WebMergedContextConfiguration@5c671d7f testClass = IntegrationTests, locations = '{}', classes = '{class org.jab.microservices.MainApplication}', contextInitializerClasses = '[]', activeProfiles = '{}', propertySourceLocations = '{}', propertySourceProperties = '{org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true}', contextCustomizers = set[[ImportsContextCustomizer@757277dc key = [org.springframework.boot.test.autoconfigure.web.servlet.MockMvcAutoConfiguration, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcSecurityAutoConfiguration, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcWebClientAutoConfiguration, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcWebDriverAutoConfiguration, org.springframework.cloud.contract.stubrunner.spring.StubRunnerConfiguration, org.springframework.cloud.contract.stubrunner.spring.cloud.StubRunnerSpringCloudAutoConfiguration, org.springframework.cloud.contract.stubrunner.spring.cloud.ribbon.StubRunnerRibbonAutoConfiguration, org.springframework.cloud.contract.stubrunner.messaging.stream.StubRunnerStreamConfiguration, org.springframework.cloud.contract.stubrunner.messaging.integration.StubRunnerIntegrationConfiguration, org.springframework.cloud.contract.stubrunner.spring.cloud.zookeeper.StubRunnerSpringCloudZookeeperAutoConfiguration, org.springframework.cloud.contract.stubrunner.spring.cloud.eureka.StubRunnerSpringCloudEurekaAutoConfiguration, org.springframework.cloud.contract.stubrunner.spring.cloud.consul.StubRunnerSpringCloudConsulAutoConfiguration, org.springframework.cloud.contract.stubrunner.messaging.StubRunnerStreamsIntegrationAutoConfiguration, org.springframework.cloud.contract.verifier.messaging.stream.ContractVerifierStreamAutoConfiguration, org.springframework.cloud.contract.verifier.messaging.integration.ContractVerifierIntegrationConfiguration, org.springframework.cloud.contract.verifier.messaging.amqp.ContractVerifierAmqpAutoConfiguration, org.springframework.cloud.contract.verifier.messaging.amqp.RabbitMockConnectionFactoryAutoConfiguration, org.springframework.cloud.contract.verifier.messaging.noop.NoOpContractVerifierAutoConfiguration]], org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@2f8f5f62, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@5fcd892a, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.web.client.TestRestTemplateContextCustomizer@2473b9ce, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@5527c9b9, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizerFactory$Customizer@40f08448], resourceBasePath = 'src/main/webapp', contextLoader = 'org.springframework.boot.test.context.SpringBootContextLoader', parent = [null]], attributes = map['org.springframework.test.context.web.ServletTestExecutionListener.activateListener' -> true, 'org.springframework.test.context.web.ServletTestExecutionListener.populatedRequestContextHolder' -> true, 'org.springframework.test.context.web.ServletTestExecutionListener.resetRequestContextHolder' -> true]]].
2018-10-17 13:46:03.547 DEBUG 11804 --- [           main] c.DefaultCacheAwareContextLoaderDelegate : Retrieved ApplicationContext from cache with key [[WebMergedContextConfiguration@5c671d7f testClass = IntegrationTests, locations = '{}', classes = '{class org.jab.microservices.MainApplication}', contextInitializerClasses = '[]', activeProfiles = '{}', propertySourceLocations = '{}', propertySourceProperties = '{org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true}', contextCustomizers = set[[ImportsContextCustomizer@757277dc key = [org.springframework.boot.test.autoconfigure.web.servlet.MockMvcAutoConfiguration, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcSecurityAutoConfiguration, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcWebClientAutoConfiguration, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcWebDriverAutoConfiguration, org.springframework.cloud.contract.stubrunner.spring.StubRunnerConfiguration, org.springframework.cloud.contract.stubrunner.spring.cloud.StubRunnerSpringCloudAutoConfiguration, org.springframework.cloud.contract.stubrunner.spring.cloud.ribbon.StubRunnerRibbonAutoConfiguration, org.springframework.cloud.contract.stubrunner.messaging.stream.StubRunnerStreamConfiguration, org.springframework.cloud.contract.stubrunner.messaging.integration.StubRunnerIntegrationConfiguration, org.springframework.cloud.contract.stubrunner.spring.cloud.zookeeper.StubRunnerSpringCloudZookeeperAutoConfiguration, org.springframework.cloud.contract.stubrunner.spring.cloud.eureka.StubRunnerSpringCloudEurekaAutoConfiguration, org.springframework.cloud.contract.stubrunner.spring.cloud.consul.StubRunnerSpringCloudConsulAutoConfiguration, org.springframework.cloud.contract.stubrunner.messaging.StubRunnerStreamsIntegrationAutoConfiguration, org.springframework.cloud.contract.verifier.messaging.stream.ContractVerifierStreamAutoConfiguration, org.springframework.cloud.contract.verifier.messaging.integration.ContractVerifierIntegrationConfiguration, org.springframework.cloud.contract.verifier.messaging.amqp.ContractVerifierAmqpAutoConfiguration, org.springframework.cloud.contract.verifier.messaging.amqp.RabbitMockConnectionFactoryAutoConfiguration, org.springframework.cloud.contract.verifier.messaging.noop.NoOpContractVerifierAutoConfiguration]], org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@2f8f5f62, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@5fcd892a, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.web.client.TestRestTemplateContextCustomizer@2473b9ce, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@5527c9b9, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizerFactory$Customizer@40f08448], resourceBasePath = 'src/main/webapp', contextLoader = 'org.springframework.boot.test.context.SpringBootContextLoader', parent = [null]]]
2018-10-17 13:46:03.552 DEBUG 11804 --- [           main] org.springframework.test.context.cache   : Spring test ApplicationContext cache statistics: [DefaultContextCache@1ac0cdb0 size = 1, maxSize = 32, parentContextCount = 0, hitCount = 1, missCount = 1]
2018-10-17 13:46:03.555 DEBUG 11804 --- [           main] o.s.b.f.annotation.InjectionMetadata     : Processing injected element of bean 'org.jab.microservices.IntegrationTests': AutowiredFieldElement for private org.springframework.test.web.servlet.MockMvc org.jab.microservices.IntegrationTests.mvc
2018-10-17 13:46:03.555 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Returning cached instance of singleton bean 'mockMvc'
2018-10-17 13:46:03.555 DEBUG 11804 --- [           main] f.a.AutowiredAnnotationBeanPostProcessor : Autowiring by type from bean name 'org.jab.microservices.IntegrationTests' to bean named 'mockMvc'
2018-10-17 13:46:03.565 DEBUG 11804 --- [           main] tractDirtiesContextTestExecutionListener : Before test method: context [DefaultTestContext@49e5f737 testClass = IntegrationTests, testInstance = org.jab.microservices.IntegrationTests@d969452, testMethod = whenGetConcept1_thenReturnOk@IntegrationTests, testException = [null], mergedContextConfiguration = [WebMergedContextConfiguration@5c671d7f testClass = IntegrationTests, locations = '{}', classes = '{class org.jab.microservices.MainApplication}', contextInitializerClasses = '[]', activeProfiles = '{}', propertySourceLocations = '{}', propertySourceProperties = '{org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true}', contextCustomizers = set[[ImportsContextCustomizer@757277dc key = [org.springframework.boot.test.autoconfigure.web.servlet.MockMvcAutoConfiguration, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcSecurityAutoConfiguration, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcWebClientAutoConfiguration, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcWebDriverAutoConfiguration, org.springframework.cloud.contract.stubrunner.spring.StubRunnerConfiguration, org.springframework.cloud.contract.stubrunner.spring.cloud.StubRunnerSpringCloudAutoConfiguration, org.springframework.cloud.contract.stubrunner.spring.cloud.ribbon.StubRunnerRibbonAutoConfiguration, org.springframework.cloud.contract.stubrunner.messaging.stream.StubRunnerStreamConfiguration, org.springframework.cloud.contract.stubrunner.messaging.integration.StubRunnerIntegrationConfiguration, org.springframework.cloud.contract.stubrunner.spring.cloud.zookeeper.StubRunnerSpringCloudZookeeperAutoConfiguration, org.springframework.cloud.contract.stubrunner.spring.cloud.eureka.StubRunnerSpringCloudEurekaAutoConfiguration, org.springframework.cloud.contract.stubrunner.spring.cloud.consul.StubRunnerSpringCloudConsulAutoConfiguration, org.springframework.cloud.contract.stubrunner.messaging.StubRunnerStreamsIntegrationAutoConfiguration, org.springframework.cloud.contract.verifier.messaging.stream.ContractVerifierStreamAutoConfiguration, org.springframework.cloud.contract.verifier.messaging.integration.ContractVerifierIntegrationConfiguration, org.springframework.cloud.contract.verifier.messaging.amqp.ContractVerifierAmqpAutoConfiguration, org.springframework.cloud.contract.verifier.messaging.amqp.RabbitMockConnectionFactoryAutoConfiguration, org.springframework.cloud.contract.verifier.messaging.noop.NoOpContractVerifierAutoConfiguration]], org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@2f8f5f62, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@5fcd892a, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.web.client.TestRestTemplateContextCustomizer@2473b9ce, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@5527c9b9, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizerFactory$Customizer@40f08448], resourceBasePath = 'src/main/webapp', contextLoader = 'org.springframework.boot.test.context.SpringBootContextLoader', parent = [null]], attributes = map['org.springframework.test.context.web.ServletTestExecutionListener.activateListener' -> true, 'org.springframework.test.context.web.ServletTestExecutionListener.populatedRequestContextHolder' -> true, 'org.springframework.test.context.web.ServletTestExecutionListener.resetRequestContextHolder' -> true]], class annotated with @DirtiesContext [false] with mode [null], method annotated with @DirtiesContext [false] with mode [null].
2018-10-17 13:46:03.570 DEBUG 11804 --- [           main] c.DefaultCacheAwareContextLoaderDelegate : Retrieved ApplicationContext from cache with key [[WebMergedContextConfiguration@5c671d7f testClass = IntegrationTests, locations = '{}', classes = '{class org.jab.microservices.MainApplication}', contextInitializerClasses = '[]', activeProfiles = '{}', propertySourceLocations = '{}', propertySourceProperties = '{org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true}', contextCustomizers = set[[ImportsContextCustomizer@757277dc key = [org.springframework.boot.test.autoconfigure.web.servlet.MockMvcAutoConfiguration, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcSecurityAutoConfiguration, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcWebClientAutoConfiguration, org.springframework.boot.test.autoconfigure.web.servlet.MockMvcWebDriverAutoConfiguration, org.springframework.cloud.contract.stubrunner.spring.StubRunnerConfiguration, org.springframework.cloud.contract.stubrunner.spring.cloud.StubRunnerSpringCloudAutoConfiguration, org.springframework.cloud.contract.stubrunner.spring.cloud.ribbon.StubRunnerRibbonAutoConfiguration, org.springframework.cloud.contract.stubrunner.messaging.stream.StubRunnerStreamConfiguration, org.springframework.cloud.contract.stubrunner.messaging.integration.StubRunnerIntegrationConfiguration, org.springframework.cloud.contract.stubrunner.spring.cloud.zookeeper.StubRunnerSpringCloudZookeeperAutoConfiguration, org.springframework.cloud.contract.stubrunner.spring.cloud.eureka.StubRunnerSpringCloudEurekaAutoConfiguration, org.springframework.cloud.contract.stubrunner.spring.cloud.consul.StubRunnerSpringCloudConsulAutoConfiguration, org.springframework.cloud.contract.stubrunner.messaging.StubRunnerStreamsIntegrationAutoConfiguration, org.springframework.cloud.contract.verifier.messaging.stream.ContractVerifierStreamAutoConfiguration, org.springframework.cloud.contract.verifier.messaging.integration.ContractVerifierIntegrationConfiguration, org.springframework.cloud.contract.verifier.messaging.amqp.ContractVerifierAmqpAutoConfiguration, org.springframework.cloud.contract.verifier.messaging.amqp.RabbitMockConnectionFactoryAutoConfiguration, org.springframework.cloud.contract.verifier.messaging.noop.NoOpContractVerifierAutoConfiguration]], org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@2f8f5f62, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@5fcd892a, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.web.client.TestRestTemplateContextCustomizer@2473b9ce, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@5527c9b9, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizerFactory$Customizer@40f08448], resourceBasePath = 'src/main/webapp', contextLoader = 'org.springframework.boot.test.context.SpringBootContextLoader', parent = [null]]]
2018-10-17 13:46:03.570 DEBUG 11804 --- [           main] org.springframework.test.context.cache   : Spring test ApplicationContext cache statistics: [DefaultContextCache@1ac0cdb0 size = 1, maxSize = 32, parentContextCount = 0, hitCount = 2, missCount = 1]
2018-10-17 13:46:03.755 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Returning cached instance of singleton bean 'org.springframework.boot.test.mock.mockito.MockitoBeans'
2018-10-17 13:46:03.812 DEBUG 11804 --- [           main] o.s.b.w.s.f.OrderedRequestContextFilter  : Bound request context to thread: org.springframework.mock.web.MockHttpServletRequest@2e3252
2018-10-17 13:46:03.817 DEBUG 11804 --- [           main] o.s.t.web.servlet.TestDispatcherServlet  : DispatcherServlet with name '' processing GET request for [/entrypoint]
2018-10-17 13:46:03.820 DEBUG 11804 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Looking up handler method for path /entrypoint
2018-10-17 13:46:03.822 DEBUG 11804 --- [           main] s.w.s.m.m.a.RequestMappingHandlerMapping : Returning handler method [public org.jab.microservices.ConceptReponse org.jab.microservices.BasicController.getConcept1() throws java.lang.Exception]
2018-10-17 13:46:03.822 DEBUG 11804 --- [           main] o.s.b.f.s.DefaultListableBeanFactory     : Returning cached instance of singleton bean 'basicController'
2018-10-17 13:46:03.825 DEBUG 11804 --- [           main] o.s.t.web.servlet.TestDispatcherServlet  : Last-Modified value for [/entrypoint] is: -1
2018-10-17 13:46:03.862 DEBUG 11804 --- [           main] o.s.web.client.RestTemplate              : Created GET request for "http://localhost:8081/api/concept1"
2018-10-17 13:46:03.865 DEBUG 11804 --- [           main] o.s.web.client.RestTemplate              : Setting request Accept header to [text/plain, application/json, application/*+json, */*]
2018-10-17 13:46:04.872 DEBUG 11804 --- [           main] o.s.t.web.servlet.TestDispatcherServlet  : Could not complete request

org.springframework.web.client.ResourceAccessException: I/O error on GET request for "http://localhost:8081/api/concept1": Connection refused: connect; nested exception is java.net.ConnectException: Connection refused: connect
marcingrzejszczak commented 5 years ago

https://github.com/jabrena/spring-cloud-contract-git/tree/master/META-INF/org.jab.microservices/spring-cloud-contract-git-producer-poc/0.1.0-SNAPSHOT - you have no stubs there only contracts. You have to have the stubs uploaded there, from the producer, and then try it out on the consumer side.

jabrena commented 5 years ago

When I execute the project: https://github.com/jabrena/spring-cloud-contract-git-stubs-poc

connecting with the same contracts:

            <!-- remove::start[] -->
            <!-- SPRING CLOUD CONTRACT -->
            <plugin>
                <groupId>org.springframework.cloud</groupId>
                <artifactId>spring-cloud-contract-maven-plugin</artifactId>
                <!-- <version>${spring-cloud.version}</version> -->
                <extensions>true</extensions>
                <configuration>
                    <contractsRepositoryUrl>git://https://github.com/jabrena/spring-cloud-contract-git.git</contractsRepositoryUrl>
                    <!-- We reuse the contract dependency section to set up the path
                    to the folder that contains the contract definitions. In our case the
                    path will be /groupId/artifactId/version/contracts -->
                    <contractDependency>
                        <groupId>${project.groupId}</groupId>
                        <artifactId>${project.artifactId}</artifactId>
                        <version>${project.version}</version>
                    </contractDependency>
                    <!-- The mode can't be classpath -->
                    <contractsMode>LOCAL</contractsMode>
                    <basePackageForTests>com.example</basePackageForTests>
                </configuration>

It is running fine:

mvn clean install -DskipTests
mvn org.springframework.cloud:spring-cloud-contract-maven-plugin:run

Expected behaviour:

[INFO] --- spring-cloud-contract-maven-plugin:2.0.1.RELEASE:run (default-cli) @ spring-cloud-contract-git-producer-poc ---
[INFO] Launching StubRunner with contracts from C:\Users\PT02EUd\Documents\DATA\2018\ING\CHAPTER\spring-cloud-contract-git-stubs-poc\target\stubs
[INFO] Logging initialized @14942ms
[INFO] jetty-9.2.z-SNAPSHOT
[INFO] Started w.o.e.j.s.ServletContextHandler@57bd6a8f{/__admin,null,AVAILABLE}
[INFO] Started w.o.e.j.s.ServletContextHandler@77cca767{/,null,AVAILABLE}
[INFO] Started NetworkTrafficServerConnector@5db948c9{HTTP/1.1}{0.0.0.0:8080}
[INFO] Started @15074ms
[INFO] Started stub server for project [C:\Users\PT02EUd\Documents\DATA\2018\ING\CHAPTER\spring-cloud-contract-git-stubs-poc\target\stubs:+:stubs] o
n port 8080
[INFO] RequestHandlerClass from context returned com.github.tomakehurst.wiremock.http.AdminRequestHandler. Normalized mapped under returned 'null'
[INFO] Received request to /mappings with body {
  "id" : "d8dfc69c-46d6-467e-b455-533c2d11c085",
  "request" : {
    "url" : "/ping",
    "method" : "GET"
  },
  "response" : {
    "status" : 200,
    "body" : "OK"
  },
  "uuid" : "d8dfc69c-46d6-467e-b455-533c2d11c085"
}
[INFO] Received request to /mappings with body {
  "id" : "4220188c-9a2b-466b-800d-58ca70b03791",
  "request" : {
    "url" : "/health",
    "method" : "GET"
  },
  "response" : {
    "status" : 200,
    "body" : "OK"
  },
  "uuid" : "4220188c-9a2b-466b-800d-58ca70b03791"
}
[INFO] Received request to /mappings with body {
  "id" : "c46757e9-8444-4588-93f8-c21b40ae7462",
  "request" : {
    "url" : "/api/concept1",
    "method" : "GET",
    "headers" : {
      "Content-Type" : {
        "equalTo" : "application/json"
      }
    }
  },
  "response" : {
    "status" : 200,
    "body" : "{\"status\":\"OK\"}",
    "transformers" : [ "response-template" ]
  },
  "uuid" : "c46757e9-8444-4588-93f8-c21b40ae7462"
}
[INFO] All stubs are now running RunningStubs [namesAndPorts={C:\Users\PT02EUd\Documents\DATA\2018\ING\CHAPTER\spring-cloud-contract-git-stubs-poc\t
arget\stubs:+:stubs=8080}]
marcingrzejszczak commented 5 years ago

Yes, it is cause you're manually creating stubs and running them.

What you want to achieve is to convert the contracts to stubs and push them to the git repo. Then you want to fetch the stubs back on the consumer side.

jabrena commented 5 years ago

Hi Marcin,

I followed your advice, I added the stubs: https://github.com/jabrena/spring-cloud-contract-git/tree/master/META-INF/org.jab.microservices/spring-cloud-contract-git-producer-poc/0.1.0-SNAPSHOT

My question is: Why the developer has to add the stub in a remote repo? Maybe the annotation should autogenerate with a new attribute:

@AutoConfigureStubRunner(
        stubsMode = StubRunnerProperties.StubsMode.REMOTE,
        repositoryRoot = "git://https://github.com/jabrena/spring-cloud-contract-git.git",
        ids = { "org.jab.microservices:spring-cloud-contract-git-producer-poc:0.1.0-SNAPSHOT" })

I a new Engineer using SCC but if you define the contract and later, it is necessary to store the mappings autogenerated by the contracts, it is a manual step, in my humble opinion. When you run the stub runner:

https://github.com/jabrena/spring-cloud-contract-git-stubs-poc

It is not necessary to store the stubs, the maven plugin does the job for the Engineer.

mvn clean install –DskipTests
mvn org.springframework.cloud:spring-cloud-contract-maven-plugin:run

Another point, in the example we inject the dynamic port by a setMethod. do you know how to set by the constructor? https://github.com/jabrena/spring-cloud-contract-git-consumer-poc/blob/master/src/test/java/org/jab/microservices/IntegrationTests.java

    @Before
    public void setupPort() {
        basicController.setPort(producerPort);
    }

Using the annotation StubRunnerPort, it is possible to have multiple runners running together:

@StubRunnerPort("spring-cloud-contract-git-producer-poc") int producerPort;

How to add new Contracts? With add new annotations is enought?

@AutoConfigureStubRunner(
        stubsMode = StubRunnerProperties.StubsMode.REMOTE,
        repositoryRoot = "git://https://github.com/jabrena/spring-cloud-contract-git.git",
        ids = { "org.jab.microservices:spring-cloud-contract-git-producer-poc:0.1.0-SNAPSHOT" })
@AutoConfigureStubRunner(
        stubsMode = StubRunnerProperties.StubsMode.REMOTE,
        repositoryRoot = "git://https://github.com/jabrena/spring-cloud-contract-git2.git",
        ids = { "org.jab.microservices:spring-cloud-contract-git-producer-poc2:0.1.0-SNAPSHOT" })
marcingrzejszczak commented 5 years ago

Have you read these docs? https://cloud.spring.io/spring-cloud-static/Finchley.SR1/single/spring-cloud.html#_do_i_need_a_binary_storage_can_t_i_use_git

jabrena commented 5 years ago

Yes, now I read it but I say that in one Scenario the plugin generate the Stubs and maybe the annotation should generate dynamically the stubs. Using remote repos, with the current procedure, it is possible that one engineer could forget regenerating the stubs from the contracts.

Currently, I generated the stubs from another project:

https://github.com/jabrena/spring-cloud-contract-git-stubs-poc

executing the command:

mvn clean install –DskipTests

and later, paste into the git repository only for Contracts and now stubs too.

Checking the example about Contracts in git:

https://github.com/spring-cloud-samples/spring-cloud-contract-samples/tree/master/contract_git

Does exist one example that from a git contract, it is possible to generate the stubs and put the mapping in a determinated path? In that way, at least, exist one mechanism to autogenerate the stubs in the git repo only designed for contracts/stubs.

Juan Antonio

jabrena commented 5 years ago

Hi @marcingrzejszczak,

I understood the comment about pushStubsToScm:

https://cloud.spring.io/spring-cloud-static/Finchley.SR1/single/spring-cloud.html#_do_i_need_a_binary_storage_can_t_i_use_git

But maybe, not every subsystem use Spring or it possible to update them. It is necessary to design the contracts and later generate the mappings.

Juan Antonio

jabrena commented 5 years ago

Tomorrow, I will test the idea with multiple ids:

@AutoConfigureStubRunner(
        stubsMode = StubRunnerProperties.StubsMode.REMOTE,
        repositoryRoot = "git://https://github.com/jabrena/spring-cloud-contract-git.git",
        ids = { 
           "org.jab.microservices:spring-cloud-contract-git-producer-poc:0.1.0-SNAPSHOT",
           "org.jab.microservices:spring-cloud-contract-git-producer-poc2:0.1.0-SNAPSHOT" })
OlgaMaciaszek commented 5 years ago

@jabrena For every producer, you will have to be able to generate and deploy stubs using the Spring Cloud Contract plugins, either for gradle or for maven - that is the core functionality - the plugin takes the contracts, tests your implementation against these contracts and then you publish the stubs to scm - if you have a producer to which you cannot add Spring Cloud Contract plugin, you can still do it, but you will have to use our docker solution for testing the stubs and running the tests. The app in the docker image will generate the contract tests, run them against your running producer app and then publish the stubs. Please let me know if that's your usecase - I will then provide you more info. As a general rule, wherever possible, you should use the build plugins.

jabrena commented 5 years ago

Good morning @OlgaMaciaszek,

Many thanks for the reply. I understood, the way to update the stubs is using the plugins. I am trying to use the feature to upload the stubs:

                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <!-- By default we will not push the stubs back to SCM,
                            you have to explicitly add it as a goal-->
                            <goal>pushStubsToScm</goal>
                        </goals>
                    </execution>
                </executions>

But when I execute: mvn clean package -DskipTests I receive the following error:

Caused by: org.eclipse.jgit.errors.TransportException: https://github.com/jabrena/spring-cloud-contract-git.git: Authentication is requ
ired but no CredentialsProvider has been registered

How to set the credentials?

Note: I am using Windows. I read the links: https://qasseta.ru/q/19101/spring-contract-maven-plugin-pushstubstoscm-%D0%BD%D0%B5-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%B0%D0%B5%D1%82 https://github.com/spring-cloud/spring-cloud-contract/issues/678 But I didn't see the right configuration.

Juan Antonio

marcingrzejszczak commented 5 years ago

Have you checked the documentation for credentials / password / username? If did, you would find e.g. this https://cloud.spring.io/spring-cloud-static/Finchley.SR1/single/spring-cloud.html#scm-stub-downloader

jabrena commented 5 years ago

Many many thanks. Fixed. :)

Next challenge: Multiple producers used in an Integration test.

@AutoConfigureStubRunner(
        stubsMode = StubRunnerProperties.StubsMode.REMOTE,
        repositoryRoot = "git://https://github.com/jabrena/spring-cloud-contract-git.git",
        ids = { 
           "org.jab.microservices:spring-cloud-contract-git-producer-poc:0.1.0-SNAPSHOT",
           "org.jab.microservices:spring-cloud-contract-git-producer-poc2:0.1.0-SNAPSHOT" })

Cheers

OlgaMaciaszek commented 5 years ago

Ok. @jabrena let us know if you have any issues after integrating multiple producers.

jabrena commented 5 years ago

Many thanks for the support. I suppose that tomorrow I will fix it.