From d3896f913bb5d0d2700d1c32cde6864822158e7d Mon Sep 17 00:00:00 2001 From: Marcin Grzejszczak Date: Fri, 7 Oct 2016 14:59:49 +0200 Subject: [PATCH] Changed ContractVerifierObjectMapper to a bean without this change we couldn't alter the mapper with this change you can customize the whole verifier objectmapper or the objectmapper that is on classpath fixes #97 --- README.adoc | 8 ++++---- .../verifier/builder/SingleTestGenerator.groovy | 2 +- .../NoOpContractVerifierAutoConfiguration.java | 17 +++++++++++++++++ 3 files changed, 22 insertions(+), 5 deletions(-) diff --git a/README.adoc b/README.adoc index a53cdab61a..c4c64fa5b6 100644 --- a/README.adoc +++ b/README.adoc @@ -1516,13 +1516,13 @@ of either Gradle or Maven plugins. Here you can find interesting links related to Spring Cloud Contract Verifier: -- https://github.com/spring-cloud/spring-cloud-contract/[Spring Cloud Contract Verifier Github Repository] -- https://cloud.spring.io/spring-cloud-contract/spring-cloud-contract.html[Spring Cloud Contract Verifier Documentation] +- https://github.com/spring-cloud/spring-cloud-contract/[Spring Cloud Contract Github Repository] +- https://cloud.spring.io/spring-cloud-contract/spring-cloud-contract.html[Spring Cloud Contract Documentation] - https://cloud.spring.io/spring-cloud-contract/spring-cloud-contract.html/deprecated[Accurest Legacy Documentation] - https://cloud.spring.io/spring-cloud-contract/spring-cloud-contract.html/#spring-cloud-contract-stub-runner[Spring Cloud Contract Stub Runner Documentation] - https://cloud.spring.io/spring-cloud-contract/spring-cloud-contract.html/#stub-runner-for-messaging[Spring Cloud Contract Stub Runner Messaging Documentation] -- https://gitter.im/spring-cloud/spring-cloud-contract[Spring Cloud Contract Verifier Gitter] -- https://github.com/spring-cloud/spring-cloud-contract[Spring Cloud Contract Verifier Maven Plugin] +- https://gitter.im/spring-cloud/spring-cloud-contract[Spring Cloud Contract Gitter] +- https://github.com/spring-cloud/spring-cloud-contract[Spring Cloud Contract Maven Plugin] == Documentation diff --git a/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/builder/SingleTestGenerator.groovy b/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/builder/SingleTestGenerator.groovy index a226611c2f..a6d9c0ba0f 100644 --- a/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/builder/SingleTestGenerator.groovy +++ b/spring-cloud-contract-verifier/src/main/groovy/org/springframework/cloud/contract/verifier/builder/SingleTestGenerator.groovy @@ -157,7 +157,7 @@ class SingleTestGenerator { private void addMessagingRelatedEntries(ClassBuilder clazz) { clazz.addField(['@Inject ContractVerifierMessaging contractVerifierMessaging', - 'ContractVerifierObjectMapper contractVerifierObjectMapper = new ContractVerifierObjectMapper()' + '@Inject ContractVerifierObjectMapper contractVerifierObjectMapper' ]) clazz.addImport([ 'javax.inject.Inject', 'org.springframework.cloud.contract.verifier.messaging.internal.ContractVerifierObjectMapper', diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/noop/NoOpContractVerifierAutoConfiguration.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/noop/NoOpContractVerifierAutoConfiguration.java index 310ba415aa..8d7f8cec30 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/noop/NoOpContractVerifierAutoConfiguration.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/noop/NoOpContractVerifierAutoConfiguration.java @@ -16,21 +16,29 @@ package org.springframework.cloud.contract.verifier.messaging.noop; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.AutoConfigureOrder; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.cloud.contract.verifier.messaging.MessageVerifier; import org.springframework.cloud.contract.verifier.messaging.internal.ContractVerifierMessaging; +import org.springframework.cloud.contract.verifier.messaging.internal.ContractVerifierObjectMapper; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.Ordered; +import com.fasterxml.jackson.databind.ObjectMapper; + /** + * Verifier auto configuration containing default beans for messaging + * * @author Marcin Grzejszczak */ @Configuration @AutoConfigureOrder(Ordered.LOWEST_PRECEDENCE) public class NoOpContractVerifierAutoConfiguration { + @Autowired(required = false) ObjectMapper objectMapper; + @Bean @ConditionalOnMissingBean public MessageVerifier contractVerifierMessageExchange() { @@ -44,4 +52,13 @@ public class NoOpContractVerifierAutoConfiguration { return new ContractVerifierMessaging<>(exchange); } + @Bean + @ConditionalOnMissingBean + public ContractVerifierObjectMapper contractVerifierObjectMapper() { + if (this.objectMapper != null) { + return new ContractVerifierObjectMapper(this.objectMapper); + } + return new ContractVerifierObjectMapper(); + } + }