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
This commit is contained in:
Marcin Grzejszczak
2016-10-07 14:59:49 +02:00
parent 1e3c67e163
commit d3896f913b
3 changed files with 22 additions and 5 deletions

View File

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

View File

@@ -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',

View File

@@ -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();
}
}