diff --git a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/main/groovy/org/springframework/cloud/contract/verifier/plugin/ExtensionToProperties.groovy b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/main/groovy/org/springframework/cloud/contract/verifier/plugin/ExtensionToProperties.groovy index ae8538d39a..ccfaead290 100644 --- a/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/main/groovy/org/springframework/cloud/contract/verifier/plugin/ExtensionToProperties.groovy +++ b/spring-cloud-contract-tools/spring-cloud-contract-gradle-plugin/src/main/groovy/org/springframework/cloud/contract/verifier/plugin/ExtensionToProperties.groovy @@ -13,24 +13,24 @@ class ExtensionToProperties { protected static ContractVerifierConfigProperties fromExtension(ContractVerifierExtension extension) { return new ContractVerifierConfigProperties( - targetFramework: extension.testFramework, - testMode: extension.testMode, - basePackageForTests: extension.basePackageForTests, - baseClassForTests: extension.baseClassForTests, - nameSuffixForTests: extension.nameSuffixForTests, - ruleClassForTests: extension.ruleClassForTests, - excludedFiles: extension.excludedFiles, - ignoredFiles: extension.ignoredFiles, - imports: extension.imports, - staticImports: extension.staticImports, - contractsDslDir: extension.contractsDslDir, - generatedTestSourcesDir: extension.generatedTestSourcesDir, - stubsOutputDir: extension.stubsOutputDir, - stubsSuffix: extension.stubsSuffix, - assertJsonSize: extension.assertJsonSize, - packageWithBaseClasses: extension.packageWithBaseClasses, - baseClassMappings: extension.baseClassMappings, - excludeBuildFolders: extension.excludeBuildFolders + targetFramework: extension.getTestFramework(), + testMode: extension.getTestMode(), + basePackageForTests: extension.getBasePackageForTests(), + baseClassForTests: extension.getBaseClassForTests(), + nameSuffixForTests: extension.getNameSuffixForTests(), + ruleClassForTests: extension.getRuleClassForTests(), + excludedFiles: extension.getExcludedFiles(), + ignoredFiles: extension.getIgnoredFiles(), + imports: extension.getImports(), + staticImports: extension.getStaticImports(), + contractsDslDir: extension.getContractsDslDir(), + generatedTestSourcesDir: extension.getGeneratedTestSourcesDir(), + stubsOutputDir: extension.getStubsOutputDir(), + stubsSuffix: extension.getStubsSuffix(), + assertJsonSize: extension.getAssertJsonSize(), + packageWithBaseClasses: extension.getPackageWithBaseClasses(), + baseClassMappings: extension.getBaseClassMappings(), + excludeBuildFolders: extension.getExcludeBuildFolders() ) } } diff --git a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/amqp/SpringAmqpStubMessages.java b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/amqp/SpringAmqpStubMessages.java index 6e61e39a09..7ac0767ebe 100644 --- a/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/amqp/SpringAmqpStubMessages.java +++ b/spring-cloud-contract-verifier/src/main/java/org/springframework/cloud/contract/verifier/messaging/amqp/SpringAmqpStubMessages.java @@ -86,21 +86,36 @@ public class SpringAmqpStubMessages implements MessageVerifier { public void send(T payload, Map headers, String destination) { Message message = org.springframework.amqp.core.MessageBuilder .withBody(((String) payload).getBytes()) - .andProperties(MessagePropertiesBuilder.newInstance() - .setContentType((String) headers.get("contentType")) - .copyHeaders(headers).build()) + .andProperties( + MessagePropertiesBuilder.newInstance() + .setContentType(header(headers, "contentType")) + .copyHeaders(headers).build()) .build(); if (headers != null && headers.containsKey(DEFAULT_CLASSID_FIELD_NAME)) { message.getMessageProperties().setHeader(DEFAULT_CLASSID_FIELD_NAME, headers.get(DEFAULT_CLASSID_FIELD_NAME)); } if (headers != null && headers.containsKey(AmqpHeaders.RECEIVED_ROUTING_KEY)) { - message.getMessageProperties().setReceivedRoutingKey( - (String) headers.get(AmqpHeaders.RECEIVED_ROUTING_KEY)); + message.getMessageProperties() + .setReceivedRoutingKey(header(headers, AmqpHeaders.RECEIVED_ROUTING_KEY)); } send(message, destination); } + private String header(Map headers, String headerName) { + if (headers == null) { + return ""; + } + Object value = headers.get(headerName); + if (value instanceof String) { + return (String) value; + } else if (value instanceof Iterable) { + Iterable values = ((Iterable) value); + return values.iterator().hasNext() ? (String) values.iterator().next() : ""; + } + return value.toString(); + } + @Override public void send(Message message, String destination) { final String routingKey = message.getMessageProperties().getReceivedRoutingKey();