From b618ae58683e147a64c2cde73644e7ba11003430 Mon Sep 17 00:00:00 2001 From: Dave Syer Date: Mon, 18 Jul 2016 15:39:25 +0100 Subject: [PATCH] Simplify the messaging APIs a bit There is no need for users to know about any special contract-specific Message object (payload and headers). Once you see that, it seems like there is no need for it internally either. So this change removes the message wrapper type and cleans up the interfaces it touches. --- .../CamelMessagingApplicationSpec.groovy | 10 ++-- ...IntegrationMessagingApplicationSpec.groovy | 10 ++-- .../com/example/SpringApplicationSpec.groovy | 10 ++-- .../StreamMessagingApplicationSpec.groovy | 10 ++-- .../IntegrationStubRunnerSpec.groovy | 27 ++++----- .../stream/StreamStubRunnerSpec.groovy | 25 +++++---- .../cloud/contract/stubrunner/StubRunner.java | 4 +- .../stubrunner/StubRunnerExecutor.java | 12 ++-- .../stubrunner/StubRunnerFactory.java | 4 +- .../StubRunnerMessagingTrigger.java | 33 ----------- .../StubRunnerBackupAutoConfiguration.java | 4 +- .../spring/StubRunnerConfiguration.java | 2 +- .../stubrunner/StubRunnerExecutorSpec.groovy | 24 ++++---- .../messaging/camel/CamelMessage.java | 56 ------------------- .../ContractVerifierCamelConfiguration.java | 11 ++-- .../ContractVerifierCamelMessageBuilder.java | 17 ++---- .../camel/ContractVerifierCamelMessaging.java | 31 ++++------ ...tractVerifierIntegrationConfiguration.java | 10 ++-- ...ractVerifierIntegrationMessageBuilder.java | 16 ++---- .../ContractVerifierIntegrationMessaging.java | 30 ++++------ .../integration/IntegrationMessage.java | 54 ------------------ .../messaging/ContractVerifierFilter.java | 4 +- .../messaging/ContractVerifierMessage.java | 48 ---------------- .../ContractVerifierMessageBuilder.java | 8 +-- .../messaging/ContractVerifierMessaging.java | 12 ++-- .../noop/NoOpContractVerifierMessage.java | 46 --------------- .../NoOpContractVerifierMessageBuilder.java | 12 ++-- .../noop/NoOpContractVerifierMessaging.java | 21 +++---- ...ntractVerifierStreamAutoConfiguration.java | 10 ++-- .../ContractVerifierStreamMessageBuilder.java | 17 ++---- .../ContractVerifierStreamMessaging.java | 28 ++++------ .../messaging/stream/StreamMessage.java | 54 ------------------ 32 files changed, 153 insertions(+), 507 deletions(-) delete mode 100644 spring-cloud-contract-stub-runner/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubRunnerMessagingTrigger.java delete mode 100644 spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-camel/src/main/java/org/springframework/cloud/contract/verifier/messaging/camel/CamelMessage.java delete mode 100644 spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-integration/src/main/java/org/springframework/cloud/contract/verifier/messaging/integration/IntegrationMessage.java delete mode 100644 spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-messaging-core/src/main/java/org/springframework/cloud/contract/verifier/messaging/ContractVerifierMessage.java delete mode 100644 spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-messaging-core/src/main/java/org/springframework/cloud/contract/verifier/messaging/noop/NoOpContractVerifierMessage.java delete mode 100644 spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-stream/src/main/java/org/springframework/cloud/contract/verifier/messaging/stream/StreamMessage.java diff --git a/samples/samples-messaging-camel/src/test/groovy/com/example/CamelMessagingApplicationSpec.groovy b/samples/samples-messaging-camel/src/test/groovy/com/example/CamelMessagingApplicationSpec.groovy index c711f5cefb..60cfab45da 100644 --- a/samples/samples-messaging-camel/src/test/groovy/com/example/CamelMessagingApplicationSpec.groovy +++ b/samples/samples-messaging-camel/src/test/groovy/com/example/CamelMessagingApplicationSpec.groovy @@ -18,15 +18,15 @@ package com.example import javax.inject.Inject +import org.apache.camel.Message import org.apache.camel.model.ModelCamelContext import org.junit.BeforeClass import org.springframework.beans.factory.annotation.Autowired import org.springframework.boot.test.context.SpringBootContextLoader import org.springframework.cloud.contract.spec.Contract -import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessage import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessaging import org.springframework.cloud.contract.verifier.messaging.ContractVerifierObjectMapper -import org.springframework.cloud.contract.verifier.messaging.boot.AutoConfigureContractVerifierMessaging; +import org.springframework.cloud.contract.verifier.messaging.boot.AutoConfigureContractVerifierMessaging import org.springframework.test.annotation.DirtiesContext import org.springframework.test.context.ContextConfiguration @@ -46,7 +46,7 @@ import com.toomuchcoding.jsonassert.JsonAssertion public class CamelMessagingApplicationSpec extends Specification { // ALL CASES - @Inject ContractVerifierMessaging contractVerifierMessaging + @Inject ContractVerifierMessaging contractVerifierMessaging ContractVerifierObjectMapper contractVerifierObjectMapper = new ContractVerifierObjectMapper() @BeforeClass @@ -108,7 +108,7 @@ public class CamelMessagingApplicationSpec extends Specification { // generated test should look like this: //given: - ContractVerifierMessage inputMessage = contractVerifierMessaging.create( + Message inputMessage = contractVerifierMessaging.create( contractVerifierObjectMapper.writeValueAsString([bookName: 'foo']), [sample: 'header'] ) @@ -141,7 +141,7 @@ public class CamelMessagingApplicationSpec extends Specification { // generated test should look like this: //given: - ContractVerifierMessage inputMessage = contractVerifierMessaging.create( + Message inputMessage = contractVerifierMessaging.create( contractVerifierObjectMapper.writeValueAsString([bookName: 'foo']), [sample: 'header'] ) diff --git a/samples/samples-messaging-integration/src/test/groovy/com/example/IntegrationMessagingApplicationSpec.groovy b/samples/samples-messaging-integration/src/test/groovy/com/example/IntegrationMessagingApplicationSpec.groovy index 06d1249744..68f20f4991 100644 --- a/samples/samples-messaging-integration/src/test/groovy/com/example/IntegrationMessagingApplicationSpec.groovy +++ b/samples/samples-messaging-integration/src/test/groovy/com/example/IntegrationMessagingApplicationSpec.groovy @@ -21,10 +21,10 @@ import javax.inject.Inject import org.springframework.beans.factory.annotation.Autowired import org.springframework.boot.test.context.SpringBootContextLoader import org.springframework.cloud.contract.spec.Contract -import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessage import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessaging import org.springframework.cloud.contract.verifier.messaging.ContractVerifierObjectMapper -import org.springframework.cloud.contract.verifier.messaging.boot.AutoConfigureContractVerifierMessaging; +import org.springframework.cloud.contract.verifier.messaging.boot.AutoConfigureContractVerifierMessaging +import org.springframework.messaging.Message import org.springframework.test.annotation.DirtiesContext import org.springframework.test.context.ContextConfiguration @@ -40,7 +40,7 @@ import com.toomuchcoding.jsonassert.JsonAssertion public class IntegrationMessagingApplicationSpec extends Specification { // ALL CASES - @Inject ContractVerifierMessaging contractVerifierMessaging + @Inject ContractVerifierMessaging> contractVerifierMessaging ContractVerifierObjectMapper contractVerifierObjectMapper = new ContractVerifierObjectMapper() def "should work for triggered based messaging"() { @@ -114,7 +114,7 @@ public class IntegrationMessagingApplicationSpec extends Specification { // generated test should look like this: //given: - ContractVerifierMessage inputMessage = contractVerifierMessaging.create( + Message inputMessage = contractVerifierMessaging.create( contractVerifierObjectMapper.writeValueAsString([bookName: 'foo']), [sample: 'header'] ) @@ -147,7 +147,7 @@ public class IntegrationMessagingApplicationSpec extends Specification { // generated test should look like this: //given: - ContractVerifierMessage inputMessage = contractVerifierMessaging.create( + Message inputMessage = contractVerifierMessaging.create( contractVerifierObjectMapper.writeValueAsString([bookName: 'foo']), [sample: 'header'] ) diff --git a/samples/samples-messaging-spring/src/test/groovy/com/example/SpringApplicationSpec.groovy b/samples/samples-messaging-spring/src/test/groovy/com/example/SpringApplicationSpec.groovy index 363b62b32d..ed13cef08d 100644 --- a/samples/samples-messaging-spring/src/test/groovy/com/example/SpringApplicationSpec.groovy +++ b/samples/samples-messaging-spring/src/test/groovy/com/example/SpringApplicationSpec.groovy @@ -22,10 +22,10 @@ import org.junit.BeforeClass import org.springframework.beans.factory.annotation.Autowired import org.springframework.boot.test.context.SpringBootContextLoader import org.springframework.cloud.contract.spec.Contract -import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessage import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessaging import org.springframework.cloud.contract.verifier.messaging.ContractVerifierObjectMapper -import org.springframework.cloud.contract.verifier.messaging.boot.AutoConfigureContractVerifierMessaging; +import org.springframework.cloud.contract.verifier.messaging.boot.AutoConfigureContractVerifierMessaging +import org.springframework.messaging.Message; import org.springframework.test.annotation.DirtiesContext import org.springframework.test.context.ContextConfiguration @@ -45,7 +45,7 @@ import com.toomuchcoding.jsonassert.JsonAssertion public class SpringApplicationSpec extends Specification { // ALL CASES - @Inject ContractVerifierMessaging contractVerifierMessaging + @Inject ContractVerifierMessaging> contractVerifierMessaging ContractVerifierObjectMapper contractVerifierObjectMapper = new ContractVerifierObjectMapper() @BeforeClass @@ -106,7 +106,7 @@ public class SpringApplicationSpec extends Specification { // generated test should look like this: //given: - ContractVerifierMessage inputMessage = contractVerifierMessaging.create( + Message inputMessage = contractVerifierMessaging.create( contractVerifierObjectMapper.writeValueAsString([bookName: 'foo']), [sample: 'header'] ) @@ -139,7 +139,7 @@ public class SpringApplicationSpec extends Specification { // generated test should look like this: //given: - ContractVerifierMessage inputMessage = contractVerifierMessaging.create( + Message inputMessage = contractVerifierMessaging.create( contractVerifierObjectMapper.writeValueAsString([bookName: 'foo']), [sample: 'header'] ) diff --git a/samples/samples-messaging-stream/src/test/groovy/com/example/StreamMessagingApplicationSpec.groovy b/samples/samples-messaging-stream/src/test/groovy/com/example/StreamMessagingApplicationSpec.groovy index 97baf99445..40dcd39128 100644 --- a/samples/samples-messaging-stream/src/test/groovy/com/example/StreamMessagingApplicationSpec.groovy +++ b/samples/samples-messaging-stream/src/test/groovy/com/example/StreamMessagingApplicationSpec.groovy @@ -22,10 +22,10 @@ import org.springframework.beans.factory.annotation.Autowired import org.springframework.boot.test.IntegrationTest; import org.springframework.boot.test.context.SpringBootContextLoader import org.springframework.cloud.contract.spec.Contract -import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessage import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessaging import org.springframework.cloud.contract.verifier.messaging.ContractVerifierObjectMapper -import org.springframework.cloud.contract.verifier.messaging.boot.AutoConfigureContractVerifierMessaging; +import org.springframework.cloud.contract.verifier.messaging.boot.AutoConfigureContractVerifierMessaging +import org.springframework.messaging.Message; import org.springframework.test.annotation.DirtiesContext import org.springframework.test.context.ContextConfiguration @@ -45,7 +45,7 @@ import com.toomuchcoding.jsonassert.JsonAssertion public class StreamMessagingApplicationSpec extends Specification { // ALL CASES - @Inject ContractVerifierMessaging contractVerifierMessaging + @Inject ContractVerifierMessaging> contractVerifierMessaging ContractVerifierObjectMapper contractVerifierObjectMapper = new ContractVerifierObjectMapper() def "should work for triggered based messaging"() { @@ -101,7 +101,7 @@ public class StreamMessagingApplicationSpec extends Specification { // generated test should look like this: //given: - ContractVerifierMessage inputMessage = contractVerifierMessaging.create( + Message inputMessage = contractVerifierMessaging.create( contractVerifierObjectMapper.writeValueAsString([bookName: 'foo']), [sample: 'header'] ) @@ -134,7 +134,7 @@ public class StreamMessagingApplicationSpec extends Specification { // generated test should look like this: //given: - ContractVerifierMessage inputMessage = contractVerifierMessaging.create( + Message inputMessage = contractVerifierMessaging.create( contractVerifierObjectMapper.writeValueAsString([bookName: 'foo']), [sample: 'header'] ) diff --git a/spring-cloud-contract-stub-runner/spring-cloud-contract-stub-runner-integration/src/test/groovy/org/springframework/cloud/contract/stubrunner/messaging/integration/IntegrationStubRunnerSpec.groovy b/spring-cloud-contract-stub-runner/spring-cloud-contract-stub-runner-integration/src/test/groovy/org/springframework/cloud/contract/stubrunner/messaging/integration/IntegrationStubRunnerSpec.groovy index 29e98020df..309357da8b 100644 --- a/spring-cloud-contract-stub-runner/spring-cloud-contract-stub-runner-integration/src/test/groovy/org/springframework/cloud/contract/stubrunner/messaging/integration/IntegrationStubRunnerSpec.groovy +++ b/spring-cloud-contract-stub-runner/spring-cloud-contract-stub-runner-integration/src/test/groovy/org/springframework/cloud/contract/stubrunner/messaging/integration/IntegrationStubRunnerSpec.groovy @@ -18,22 +18,23 @@ package org.springframework.cloud.contract.stubrunner.messaging.integration import groovy.json.JsonOutput import groovy.json.JsonSlurper + +import java.util.concurrent.TimeUnit + import org.springframework.beans.factory.annotation.Autowired import org.springframework.boot.autoconfigure.EnableAutoConfiguration import org.springframework.boot.test.context.SpringBootContextLoader import org.springframework.cloud.contract.spec.Contract import org.springframework.cloud.contract.stubrunner.StubFinder -import org.springframework.cloud.contract.stubrunner.spring.AutoConfigureStubRunner; -import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessage -import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessaging -import org.springframework.cloud.contract.verifier.messaging.boot.AutoConfigureContractVerifierMessaging; +import org.springframework.cloud.contract.stubrunner.spring.AutoConfigureStubRunner +import org.springframework.cloud.contract.verifier.messaging.integration.ContractVerifierIntegrationMessaging import org.springframework.context.annotation.ComponentScan import org.springframework.context.annotation.Configuration import org.springframework.context.annotation.ImportResource +import org.springframework.messaging.Message import org.springframework.test.context.ContextConfiguration -import spock.lang.Specification -import java.util.concurrent.TimeUnit +import spock.lang.Specification /** * @author Marcin Grzejszczak @@ -47,7 +48,7 @@ import java.util.concurrent.TimeUnit class IntegrationStubRunnerSpec extends Specification { @Autowired StubFinder stubFinder - @Autowired ContractVerifierMessaging messaging + @Autowired ContractVerifierIntegrationMessaging messaging def setup() { // ensure that message were taken from the queue @@ -61,7 +62,7 @@ class IntegrationStubRunnerSpec extends Specification { // end::client_send[] then: // tag::client_receive[] - ContractVerifierMessage receivedMessage = messaging.receiveMessage('outputTest') + Message receivedMessage = messaging.receiveMessage('outputTest') // end::client_receive[] and: // tag::client_receive_message[] @@ -78,7 +79,7 @@ class IntegrationStubRunnerSpec extends Specification { // end::client_trigger[] then: // tag::client_trigger_receive[] - ContractVerifierMessage receivedMessage = messaging.receiveMessage('outputTest') + Message receivedMessage = messaging.receiveMessage('outputTest') // end::client_trigger_receive[] and: // tag::client_trigger_message[] @@ -94,7 +95,7 @@ class IntegrationStubRunnerSpec extends Specification { stubFinder.trigger('org.springframework.cloud.contract.verifier.stubs:integrationService', 'return_book_1') // end::trigger_group_artifact[] then: - ContractVerifierMessage receivedMessage = messaging.receiveMessage('outputTest') + Message receivedMessage = messaging.receiveMessage('outputTest') and: receivedMessage != null assertJsons(receivedMessage.payload) @@ -107,7 +108,7 @@ class IntegrationStubRunnerSpec extends Specification { stubFinder.trigger('integrationService', 'return_book_1') // end::trigger_artifact[] then: - ContractVerifierMessage receivedMessage = messaging.receiveMessage('outputTest') + Message receivedMessage = messaging.receiveMessage('outputTest') and: receivedMessage != null assertJsons(receivedMessage.payload) @@ -134,7 +135,7 @@ class IntegrationStubRunnerSpec extends Specification { stubFinder.trigger() // end::trigger_all[] then: - ContractVerifierMessage receivedMessage = messaging.receiveMessage('outputTest') + Message receivedMessage = messaging.receiveMessage('outputTest') and: receivedMessage != null assertJsons(receivedMessage.payload) @@ -154,7 +155,7 @@ class IntegrationStubRunnerSpec extends Specification { when: messaging.send(new BookReturned('not_matching'), [wrong: 'header_value'], 'input') then: - ContractVerifierMessage receivedMessage = messaging.receiveMessage('outputTest', 100, TimeUnit.MILLISECONDS) + Message receivedMessage = messaging.receiveMessage('outputTest', 100, TimeUnit.MILLISECONDS) and: receivedMessage == null } diff --git a/spring-cloud-contract-stub-runner/spring-cloud-contract-stub-runner-stream/src/test/groovy/org/springframework/cloud/contract/stubrunner/messaging/stream/StreamStubRunnerSpec.groovy b/spring-cloud-contract-stub-runner/spring-cloud-contract-stub-runner-stream/src/test/groovy/org/springframework/cloud/contract/stubrunner/messaging/stream/StreamStubRunnerSpec.groovy index 7329d3c7d3..358695e317 100644 --- a/spring-cloud-contract-stub-runner/spring-cloud-contract-stub-runner-stream/src/test/groovy/org/springframework/cloud/contract/stubrunner/messaging/stream/StreamStubRunnerSpec.groovy +++ b/spring-cloud-contract-stub-runner/spring-cloud-contract-stub-runner-stream/src/test/groovy/org/springframework/cloud/contract/stubrunner/messaging/stream/StreamStubRunnerSpec.groovy @@ -18,24 +18,25 @@ package org.springframework.cloud.contract.stubrunner.messaging.stream import groovy.json.JsonOutput import groovy.json.JsonSlurper + +import java.util.concurrent.TimeUnit + import org.springframework.beans.factory.annotation.Autowired import org.springframework.boot.autoconfigure.EnableAutoConfiguration import org.springframework.boot.test.context.SpringBootContextLoader import org.springframework.cloud.contract.spec.Contract import org.springframework.cloud.contract.stubrunner.StubFinder -import org.springframework.cloud.contract.stubrunner.spring.AutoConfigureStubRunner; -import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessage +import org.springframework.cloud.contract.stubrunner.spring.AutoConfigureStubRunner import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessaging -import org.springframework.cloud.contract.verifier.messaging.boot.AutoConfigureContractVerifierMessaging; import org.springframework.cloud.stream.annotation.EnableBinding import org.springframework.cloud.stream.messaging.Sink import org.springframework.cloud.stream.messaging.Source import org.springframework.context.annotation.ComponentScan import org.springframework.context.annotation.Configuration +import org.springframework.messaging.Message import org.springframework.test.context.ContextConfiguration -import spock.lang.Specification -import java.util.concurrent.TimeUnit +import spock.lang.Specification /** * @author Marcin Grzejszczak @@ -49,7 +50,7 @@ import java.util.concurrent.TimeUnit class StreamStubRunnerSpec extends Specification { @Autowired StubFinder stubFinder - @Autowired ContractVerifierMessaging messaging + @Autowired ContractVerifierMessaging> messaging def setup() { // ensure that message were taken from the queue @@ -63,7 +64,7 @@ class StreamStubRunnerSpec extends Specification { // end::client_send[] then: // tag::client_receive[] - ContractVerifierMessage receivedMessage = messaging.receiveMessage('returnBook') + Message receivedMessage = messaging.receiveMessage('returnBook') // end::client_receive[] and: // tag::client_receive_message[] @@ -80,7 +81,7 @@ class StreamStubRunnerSpec extends Specification { // end::client_trigger[] then: // tag::client_trigger_receive[] - ContractVerifierMessage receivedMessage = messaging.receiveMessage('returnBook') + Message receivedMessage = messaging.receiveMessage('returnBook') // end::client_trigger_receive[] and: // tag::client_trigger_message[] @@ -96,7 +97,7 @@ class StreamStubRunnerSpec extends Specification { stubFinder.trigger('org.springframework.cloud.contract.verifier.stubs:streamService', 'return_book_1') // end::trigger_group_artifact[] then: - ContractVerifierMessage receivedMessage = messaging.receiveMessage('returnBook') + Message receivedMessage = messaging.receiveMessage('returnBook') and: receivedMessage != null assertJsons(receivedMessage.payload) @@ -109,7 +110,7 @@ class StreamStubRunnerSpec extends Specification { stubFinder.trigger('streamService', 'return_book_1') // end::trigger_artifact[] then: - ContractVerifierMessage receivedMessage = messaging.receiveMessage('returnBook') + Message receivedMessage = messaging.receiveMessage('returnBook') and: receivedMessage != null assertJsons(receivedMessage.payload) @@ -136,7 +137,7 @@ class StreamStubRunnerSpec extends Specification { stubFinder.trigger() // end::trigger_all[] then: - ContractVerifierMessage receivedMessage = messaging.receiveMessage('returnBook') + Message receivedMessage = messaging.receiveMessage('returnBook') and: receivedMessage != null assertJsons(receivedMessage.payload) @@ -156,7 +157,7 @@ class StreamStubRunnerSpec extends Specification { when: messaging.send(new BookReturned('not_matching'), [wrong: 'header_value'], 'bookStorage') then: - ContractVerifierMessage receivedMessage = messaging.receiveMessage('returnBook', 100, TimeUnit.MILLISECONDS) + Message receivedMessage = messaging.receiveMessage('returnBook', 100, TimeUnit.MILLISECONDS) and: receivedMessage == null } diff --git a/spring-cloud-contract-stub-runner/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubRunner.java b/spring-cloud-contract-stub-runner/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubRunner.java index bfae9200a9..283ee60b9c 100644 --- a/spring-cloud-contract-stub-runner/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubRunner.java +++ b/spring-cloud-contract-stub-runner/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubRunner.java @@ -52,13 +52,13 @@ public class StubRunner implements StubRunning { public StubRunner(StubRunnerOptions stubRunnerOptions, String repositoryPath, StubConfiguration stubsConfiguration, - ContractVerifierMessaging contractVerifierMessaging) { + ContractVerifierMessaging contractVerifierMessaging) { this.stubsConfiguration = stubsConfiguration; this.stubRunnerOptions = stubRunnerOptions; this.stubRepository = new StubRepository(new File(repositoryPath)); AvailablePortScanner portScanner = new AvailablePortScanner( stubRunnerOptions.getMinPortValue(), stubRunnerOptions.getMaxPortValue()); - this.localStubRunner = new StubRunnerExecutor(portScanner, (ContractVerifierMessaging) contractVerifierMessaging); + this.localStubRunner = new StubRunnerExecutor(portScanner, contractVerifierMessaging); } @Override diff --git a/spring-cloud-contract-stub-runner/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubRunnerExecutor.java b/spring-cloud-contract-stub-runner/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubRunnerExecutor.java index f82fbaaefa..920003c5aa 100644 --- a/spring-cloud-contract-stub-runner/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubRunnerExecutor.java +++ b/spring-cloud-contract-stub-runner/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubRunnerExecutor.java @@ -32,7 +32,6 @@ import org.springframework.cloud.contract.spec.internal.DslProperty; import org.springframework.cloud.contract.spec.internal.Headers; import org.springframework.cloud.contract.spec.internal.OutputMessage; import org.springframework.cloud.contract.stubrunner.AvailablePortScanner.PortCallback; -import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessage; import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessaging; import org.springframework.cloud.contract.verifier.messaging.noop.NoOpContractVerifierMessaging; import org.springframework.cloud.contract.verifier.util.BodyExtractor; @@ -46,11 +45,11 @@ public class StubRunnerExecutor implements StubFinder { private static final Logger log = LoggerFactory.getLogger(StubRunnerExecutor.class); private final AvailablePortScanner portScanner; - private final ContractVerifierMessaging contractVerifierMessaging; + private final ContractVerifierMessaging contractVerifierMessaging; private StubServer stubServer; public StubRunnerExecutor(AvailablePortScanner portScanner, - ContractVerifierMessaging contractVerifierMessaging) { + ContractVerifierMessaging contractVerifierMessaging) { this.portScanner = portScanner; this.contractVerifierMessaging = contractVerifierMessaging; } @@ -177,11 +176,10 @@ public class StubRunnerExecutor implements StubFinder { } DslProperty body = outputMessage == null ? null : outputMessage.getBody(); Headers headers = outputMessage == null ? null : outputMessage.getHeaders(); - ContractVerifierMessage message = contractVerifierMessaging - .create(JsonOutput.toJson(BodyExtractor.extractClientValueFromBody( + contractVerifierMessaging.send( + JsonOutput.toJson(BodyExtractor.extractClientValueFromBody( body == null ? null : body.getClientValue())), - headers == null ? null : headers.asStubSideMap()); - contractVerifierMessaging.send(message, + headers == null ? null : headers.asStubSideMap(), outputMessage.getSentTo().getClientValue()); } diff --git a/spring-cloud-contract-stub-runner/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubRunnerFactory.java b/spring-cloud-contract-stub-runner/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubRunnerFactory.java index 704a96b9e1..f7f427b0d4 100644 --- a/spring-cloud-contract-stub-runner/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubRunnerFactory.java +++ b/spring-cloud-contract-stub-runner/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubRunnerFactory.java @@ -31,11 +31,11 @@ public class StubRunnerFactory { private final StubRunnerOptions stubRunnerOptions; private final StubDownloader stubDownloader; - private final ContractVerifierMessaging contractVerifierMessaging; + private final ContractVerifierMessaging contractVerifierMessaging; public StubRunnerFactory(StubRunnerOptions stubRunnerOptions, StubDownloader stubDownloader, - ContractVerifierMessaging contractVerifierMessaging) { + ContractVerifierMessaging contractVerifierMessaging) { this.stubRunnerOptions = stubRunnerOptions; this.stubDownloader = stubDownloader; this.contractVerifierMessaging = contractVerifierMessaging; diff --git a/spring-cloud-contract-stub-runner/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubRunnerMessagingTrigger.java b/spring-cloud-contract-stub-runner/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubRunnerMessagingTrigger.java deleted file mode 100644 index f75a807e52..0000000000 --- a/spring-cloud-contract-stub-runner/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/StubRunnerMessagingTrigger.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright 2013-2016 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.cloud.contract.stubrunner; - -import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessaging; - -/** - * @author Marcin Grzejszczak - */ -class StubRunnerMessagingTrigger { - - private final ContractVerifierMessaging contractVerifierMessaging; - - StubRunnerMessagingTrigger(ContractVerifierMessaging contractVerifierMessaging) { - this.contractVerifierMessaging = contractVerifierMessaging; - } - - // def trigger -} diff --git a/spring-cloud-contract-stub-runner/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/server/StubRunnerBackupAutoConfiguration.java b/spring-cloud-contract-stub-runner/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/server/StubRunnerBackupAutoConfiguration.java index c04aad6482..e7194c9d76 100644 --- a/spring-cloud-contract-stub-runner/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/server/StubRunnerBackupAutoConfiguration.java +++ b/spring-cloud-contract-stub-runner/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/server/StubRunnerBackupAutoConfiguration.java @@ -32,13 +32,13 @@ public class StubRunnerBackupAutoConfiguration { @Bean @ConditionalOnMissingBean - public ContractVerifierMessaging noOpContractVerifierMessaging() { + public ContractVerifierMessaging noOpContractVerifierMessaging() { return new NoOpContractVerifierMessaging(); } @Bean @ConditionalOnMissingBean - public ContractVerifierMessageBuilder noOpContractVerifierMessageBuilder() { + public ContractVerifierMessageBuilder noOpContractVerifierMessageBuilder() { return new NoOpContractVerifierMessageBuilder(); } } diff --git a/spring-cloud-contract-stub-runner/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/StubRunnerConfiguration.java b/spring-cloud-contract-stub-runner/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/StubRunnerConfiguration.java index aeed18a969..803afc0e01 100644 --- a/spring-cloud-contract-stub-runner/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/StubRunnerConfiguration.java +++ b/spring-cloud-contract-stub-runner/spring-cloud-contract-stub-runner/src/main/java/org/springframework/cloud/contract/stubrunner/spring/StubRunnerConfiguration.java @@ -44,7 +44,7 @@ import org.springframework.core.io.Resource; public class StubRunnerConfiguration { @Autowired(required = false) - private ContractVerifierMessaging contractVerifierMessaging; + private ContractVerifierMessaging contractVerifierMessaging; @Autowired(required = false) private StubDownloader stubDownloader; @Autowired diff --git a/spring-cloud-contract-stub-runner/spring-cloud-contract-stub-runner/src/test/groovy/org/springframework/cloud/contract/stubrunner/StubRunnerExecutorSpec.groovy b/spring-cloud-contract-stub-runner/spring-cloud-contract-stub-runner/src/test/groovy/org/springframework/cloud/contract/stubrunner/StubRunnerExecutorSpec.groovy index ae78bc475f..c8a553a128 100644 --- a/spring-cloud-contract-stub-runner/spring-cloud-contract-stub-runner/src/test/groovy/org/springframework/cloud/contract/stubrunner/StubRunnerExecutorSpec.groovy +++ b/spring-cloud-contract-stub-runner/spring-cloud-contract-stub-runner/src/test/groovy/org/springframework/cloud/contract/stubrunner/StubRunnerExecutorSpec.groovy @@ -17,13 +17,14 @@ package org.springframework.cloud.contract.stubrunner import groovy.json.JsonOutput -import org.springframework.cloud.contract.stubrunner.util.StubsParser -import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessage -import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessaging -import spock.lang.Specification import java.util.concurrent.TimeUnit +import org.springframework.cloud.contract.stubrunner.util.StubsParser +import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessaging + +import spock.lang.Specification + class StubRunnerExecutorSpec extends Specification { static final int MIN_PORT = 8999 @@ -98,39 +99,34 @@ class StubRunnerExecutorSpec extends Specification { } } - private class AssertingContractVerifierMessaging implements ContractVerifierMessaging { + private class AssertingContractVerifierMessaging implements ContractVerifierMessaging { @Override - void send(ContractVerifierMessage message, String destination) { + void send(Object message, String destination) { } @Override - ContractVerifierMessage receiveMessage(String destination, long timeout, TimeUnit timeUnit) { + Object receiveMessage(String destination, long timeout, TimeUnit timeUnit) { return null } @Override - ContractVerifierMessage receiveMessage(String destination) { + Object receiveMessage(String destination) { return null } @Override void send(Object o, Map headers, String destination) { - } @Override - ContractVerifierMessage create(Object o, Map headers) { + Object create(Object o, Map headers) { assert !(JsonOutput.toJson(o).contains("serverValue")) assert headers.entrySet().every { !(it.value.toString().contains("serverValue")) } return null } - @Override - ContractVerifierMessage create(Object o) { - return null - } } } diff --git a/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-camel/src/main/java/org/springframework/cloud/contract/verifier/messaging/camel/CamelMessage.java b/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-camel/src/main/java/org/springframework/cloud/contract/verifier/messaging/camel/CamelMessage.java deleted file mode 100644 index 1d4a94257d..0000000000 --- a/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-camel/src/main/java/org/springframework/cloud/contract/verifier/messaging/camel/CamelMessage.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * Copyright 2013-2016 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.cloud.contract.verifier.messaging.camel; - -import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessage; -import org.apache.camel.Message; - -import java.util.Map; - -/** - * @author Marcin Grzejszczak - */ -public class CamelMessage implements ContractVerifierMessage { - - private final Message delegate; - - public CamelMessage(Message delegate) { - this.delegate = delegate; - } - - @Override - @SuppressWarnings("unchecked") - public T getPayload() { - return (T) delegate.getBody(); - } - - @Override - public Map getHeaders() { - return delegate.getHeaders(); - } - - @Override - public Object getHeader(String key) { - return getHeaders().get(key); - } - - @Override - public Message convert() { - return delegate; - } - -} diff --git a/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-camel/src/main/java/org/springframework/cloud/contract/verifier/messaging/camel/ContractVerifierCamelConfiguration.java b/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-camel/src/main/java/org/springframework/cloud/contract/verifier/messaging/camel/ContractVerifierCamelConfiguration.java index d66706c20d..4036457aa1 100644 --- a/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-camel/src/main/java/org/springframework/cloud/contract/verifier/messaging/camel/ContractVerifierCamelConfiguration.java +++ b/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-camel/src/main/java/org/springframework/cloud/contract/verifier/messaging/camel/ContractVerifierCamelConfiguration.java @@ -17,6 +17,7 @@ package org.springframework.cloud.contract.verifier.messaging.camel; import org.apache.camel.CamelContext; +import org.apache.camel.Message; import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessageBuilder; import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessaging; import org.springframework.context.annotation.Bean; @@ -28,12 +29,12 @@ import org.springframework.context.annotation.Configuration; @Configuration public class ContractVerifierCamelConfiguration { - @Bean ContractVerifierMessaging contractVerifierMessaging(CamelContext context, - ContractVerifierMessageBuilder builder) { - return new ContractVerifierCamelMessaging<>(context, builder); + @Bean ContractVerifierMessaging contractVerifierMessaging(CamelContext context, + ContractVerifierMessageBuilder builder) { + return new ContractVerifierCamelMessaging(context, builder); } - @Bean ContractVerifierMessageBuilder contractVerifierMessageBuilder() { - return new ContractVerifierCamelMessageBuilder<>(); + @Bean ContractVerifierMessageBuilder contractVerifierMessageBuilder() { + return new ContractVerifierCamelMessageBuilder(); } } diff --git a/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-camel/src/main/java/org/springframework/cloud/contract/verifier/messaging/camel/ContractVerifierCamelMessageBuilder.java b/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-camel/src/main/java/org/springframework/cloud/contract/verifier/messaging/camel/ContractVerifierCamelMessageBuilder.java index 77aa4f2c91..a35e0052ca 100644 --- a/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-camel/src/main/java/org/springframework/cloud/contract/verifier/messaging/camel/ContractVerifierCamelMessageBuilder.java +++ b/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-camel/src/main/java/org/springframework/cloud/contract/verifier/messaging/camel/ContractVerifierCamelMessageBuilder.java @@ -20,29 +20,20 @@ import java.util.Map; import org.apache.camel.Message; import org.apache.camel.impl.DefaultMessage; -import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessage; - import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessageBuilder; /** * @author Marcin Grzejszczak */ -public class ContractVerifierCamelMessageBuilder implements - ContractVerifierMessageBuilder { +public class ContractVerifierCamelMessageBuilder implements + ContractVerifierMessageBuilder { @Override - public ContractVerifierMessage create(T payload, Map headers) { + public Message create(T payload, Map headers) { DefaultMessage message = new DefaultMessage(); message.setBody(payload); message.setHeaders(headers); - return new CamelMessage<>(message); + return message; } - @Override - public ContractVerifierMessage create(Message message) { - if (message == null) { - return null; - } - return new CamelMessage<>(message); - } } diff --git a/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-camel/src/main/java/org/springframework/cloud/contract/verifier/messaging/camel/ContractVerifierCamelMessaging.java b/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-camel/src/main/java/org/springframework/cloud/contract/verifier/messaging/camel/ContractVerifierCamelMessaging.java index 14b0a7db36..d3b3d6d65a 100644 --- a/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-camel/src/main/java/org/springframework/cloud/contract/verifier/messaging/camel/ContractVerifierCamelMessaging.java +++ b/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-camel/src/main/java/org/springframework/cloud/contract/verifier/messaging/camel/ContractVerifierCamelMessaging.java @@ -28,38 +28,36 @@ import org.apache.camel.impl.DefaultExchange; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessageBuilder; import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessaging; import org.springframework.stereotype.Component; -import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessage; -import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessageBuilder; - /** * @author Marcin Grzejszczak */ @Component -public class ContractVerifierCamelMessaging implements - ContractVerifierMessaging { +public class ContractVerifierCamelMessaging implements + ContractVerifierMessaging { private static final Logger log = LoggerFactory.getLogger( ContractVerifierCamelMessaging.class); private final CamelContext context; - private final ContractVerifierMessageBuilder builder; + private final ContractVerifierMessageBuilder builder; @Autowired @SuppressWarnings("unchecked") - public ContractVerifierCamelMessaging(CamelContext context, ContractVerifierMessageBuilder contractVerifierMessageBuilder) { + public ContractVerifierCamelMessaging(CamelContext context, ContractVerifierMessageBuilder contractVerifierMessageBuilder) { this.context = context; this.builder = contractVerifierMessageBuilder; } @Override - public void send(ContractVerifierMessage message, String destination) { + public void send(Message message, String destination) { try { ProducerTemplate producerTemplate = context.createProducerTemplate(); Exchange exchange = new DefaultExchange(context); - exchange.setIn(message.convert()); + exchange.setIn(message); producerTemplate.send(destination, exchange); } catch (Exception e) { log.error("Exception occurred while trying to send a message [" + message + "] " + @@ -70,17 +68,17 @@ public class ContractVerifierCamelMessaging implements @Override @SuppressWarnings("unchecked") - public void send(T payload, Map headers, String destination) { + public void send(T payload, Map headers, String destination) { send(builder.create(payload, headers), destination); } @Override @SuppressWarnings("unchecked") - public ContractVerifierMessage receiveMessage(String destination, long timeout, TimeUnit timeUnit) { + public Message receiveMessage(String destination, long timeout, TimeUnit timeUnit) { try { ConsumerTemplate consumerTemplate = context.createConsumerTemplate(); Exchange exchange = consumerTemplate.receive(destination, timeUnit.toMillis(timeout)); - return builder.create(exchange.getIn()); + return exchange.getIn(); } catch (Exception e) { log.error("Exception occurred while trying to read a message from " + " a channel with name [" + destination + "]", e); @@ -89,19 +87,14 @@ public class ContractVerifierCamelMessaging implements } @Override - public ContractVerifierMessage receiveMessage(String destination) { + public Message receiveMessage(String destination) { return receiveMessage(destination, 5, TimeUnit.SECONDS); } @Override @SuppressWarnings("unchecked") - public ContractVerifierMessage create(T t, Map headers) { + public Message create(T t, Map headers) { return builder.create(t, headers); } - @Override - @SuppressWarnings("unchecked") - public ContractVerifierMessage create(Message message) { - return builder.create(message); - } } diff --git a/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-integration/src/main/java/org/springframework/cloud/contract/verifier/messaging/integration/ContractVerifierIntegrationConfiguration.java b/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-integration/src/main/java/org/springframework/cloud/contract/verifier/messaging/integration/ContractVerifierIntegrationConfiguration.java index d4bdde69a0..6b7ce9a583 100644 --- a/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-integration/src/main/java/org/springframework/cloud/contract/verifier/messaging/integration/ContractVerifierIntegrationConfiguration.java +++ b/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-integration/src/main/java/org/springframework/cloud/contract/verifier/messaging/integration/ContractVerifierIntegrationConfiguration.java @@ -30,15 +30,15 @@ import org.springframework.messaging.Message; public class ContractVerifierIntegrationConfiguration { @Bean - public ContractVerifierMessaging> contractVerifierMessaging( + public ContractVerifierMessaging> contractVerifierMessaging( ApplicationContext applicationContext, - ContractVerifierMessageBuilder> contractVerifierMessageBuilder) { - return new ContractVerifierIntegrationMessaging(applicationContext, + ContractVerifierMessageBuilder> contractVerifierMessageBuilder) { + return new ContractVerifierIntegrationMessaging(applicationContext, contractVerifierMessageBuilder); } @Bean - public ContractVerifierMessageBuilder> contractVerifierMessageBuilder() { - return new ContractVerifierIntegrationMessageBuilder<>(); + public ContractVerifierMessageBuilder> contractVerifierMessageBuilder() { + return new ContractVerifierIntegrationMessageBuilder(); } } diff --git a/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-integration/src/main/java/org/springframework/cloud/contract/verifier/messaging/integration/ContractVerifierIntegrationMessageBuilder.java b/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-integration/src/main/java/org/springframework/cloud/contract/verifier/messaging/integration/ContractVerifierIntegrationMessageBuilder.java index 60f10b1493..c502ffb74c 100644 --- a/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-integration/src/main/java/org/springframework/cloud/contract/verifier/messaging/integration/ContractVerifierIntegrationMessageBuilder.java +++ b/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-integration/src/main/java/org/springframework/cloud/contract/verifier/messaging/integration/ContractVerifierIntegrationMessageBuilder.java @@ -18,7 +18,6 @@ package org.springframework.cloud.contract.verifier.messaging.integration; import java.util.Map; -import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessage; import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessageBuilder; import org.springframework.messaging.Message; import org.springframework.messaging.MessageHeaders; @@ -27,19 +26,12 @@ import org.springframework.messaging.support.MessageBuilder; /** * @author Marcin Grzejszczak */ -public class ContractVerifierIntegrationMessageBuilder implements - ContractVerifierMessageBuilder> { +public class ContractVerifierIntegrationMessageBuilder implements + ContractVerifierMessageBuilder> { @Override - public ContractVerifierMessage> create(T payload, Map headers) { - return new IntegrationMessage<>(MessageBuilder.createMessage(payload, new MessageHeaders(headers))); + public Message create(T payload, Map headers) { + return MessageBuilder.createMessage(payload, new MessageHeaders(headers)); } - @Override - public ContractVerifierMessage> create(Message message) { - if (message == null) { - return null; - } - return new IntegrationMessage<>(message); - } } diff --git a/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-integration/src/main/java/org/springframework/cloud/contract/verifier/messaging/integration/ContractVerifierIntegrationMessaging.java b/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-integration/src/main/java/org/springframework/cloud/contract/verifier/messaging/integration/ContractVerifierIntegrationMessaging.java index 7572c70522..dc22e7b360 100644 --- a/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-integration/src/main/java/org/springframework/cloud/contract/verifier/messaging/integration/ContractVerifierIntegrationMessaging.java +++ b/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-integration/src/main/java/org/springframework/cloud/contract/verifier/messaging/integration/ContractVerifierIntegrationMessaging.java @@ -22,7 +22,6 @@ import java.util.concurrent.TimeUnit; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessage; import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessageBuilder; import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessaging; import org.springframework.context.ApplicationContext; @@ -35,31 +34,31 @@ import org.springframework.stereotype.Component; * @author Marcin Grzejszczak */ @Component -public class ContractVerifierIntegrationMessaging implements - ContractVerifierMessaging> { +public class ContractVerifierIntegrationMessaging implements + ContractVerifierMessaging> { private static final Logger log = LoggerFactory.getLogger( ContractVerifierIntegrationMessaging.class); private final ApplicationContext context; - private final ContractVerifierMessageBuilder> builder; + private final ContractVerifierMessageBuilder> builder; @Autowired - public ContractVerifierIntegrationMessaging(ApplicationContext context, ContractVerifierMessageBuilder> contractVerifierMessageBuilder) { + public ContractVerifierIntegrationMessaging(ApplicationContext context, ContractVerifierMessageBuilder> contractVerifierMessageBuilder) { this.context = context; this.builder = contractVerifierMessageBuilder; } @Override - public void send(T payload, Map headers, String destination) { - send(builder.create(payload, headers), destination); + public void send(T payload, Map headers, String destination) { + send(create(payload, headers), destination); } @Override - public void send(ContractVerifierMessage> message, String destination) { + public void send(Message message, String destination) { try { MessageChannel messageChannel = context.getBean(destination, MessageChannel.class); - messageChannel.send(message.convert()); + messageChannel.send(message); } catch (Exception e) { log.error("Exception occurred while trying to send a message [" + message + "] " + "to a channel with name [" + destination + "]", e); @@ -68,11 +67,10 @@ public class ContractVerifierIntegrationMessaging implements } @Override - @SuppressWarnings("unchecked") - public ContractVerifierMessage> receiveMessage(String destination, long timeout, TimeUnit timeUnit) { + public Message receiveMessage(String destination, long timeout, TimeUnit timeUnit) { try { PollableChannel messageChannel = context.getBean(destination, PollableChannel.class); - return builder.create((Message) messageChannel.receive(timeUnit.toMillis(timeout))); + return messageChannel.receive(timeUnit.toMillis(timeout)); } catch (Exception e) { log.error("Exception occurred while trying to read a message from " + " a channel with name [" + destination + "]", e); @@ -81,17 +79,13 @@ public class ContractVerifierIntegrationMessaging implements } @Override - public ContractVerifierMessage> receiveMessage(String destination) { + public Message receiveMessage(String destination) { return receiveMessage(destination, 5, TimeUnit.SECONDS); } @Override - public ContractVerifierMessage> create(T t, Map headers) { + public Message create(T t, Map headers) { return builder.create(t, headers); } - @Override - public ContractVerifierMessage> create(Message message) { - return builder.create(message); - } } diff --git a/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-integration/src/main/java/org/springframework/cloud/contract/verifier/messaging/integration/IntegrationMessage.java b/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-integration/src/main/java/org/springframework/cloud/contract/verifier/messaging/integration/IntegrationMessage.java deleted file mode 100644 index b75e92eb69..0000000000 --- a/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-integration/src/main/java/org/springframework/cloud/contract/verifier/messaging/integration/IntegrationMessage.java +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright 2013-2016 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.cloud.contract.verifier.messaging.integration; - -import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessage; -import org.springframework.messaging.Message; -import org.springframework.messaging.MessageHeaders; - -/** - * @author Marcin Grzejszczak - */ -public class IntegrationMessage implements ContractVerifierMessage> { - - private final Message delegate; - - public IntegrationMessage(Message delegate) { - this.delegate = delegate; - } - - @Override - public T getPayload() { - return delegate.getPayload(); - } - - @Override - public MessageHeaders getHeaders() { - return delegate.getHeaders(); - } - - @Override - public Object getHeader(String key) { - return getHeaders().get(key); - } - - @Override - public Message convert() { - return delegate; - } - -} diff --git a/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-messaging-core/src/main/java/org/springframework/cloud/contract/verifier/messaging/ContractVerifierFilter.java b/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-messaging-core/src/main/java/org/springframework/cloud/contract/verifier/messaging/ContractVerifierFilter.java index 3c864f1bee..7c706a9786 100644 --- a/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-messaging-core/src/main/java/org/springframework/cloud/contract/verifier/messaging/ContractVerifierFilter.java +++ b/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-messaging-core/src/main/java/org/springframework/cloud/contract/verifier/messaging/ContractVerifierFilter.java @@ -21,10 +21,10 @@ package org.springframework.cloud.contract.verifier.messaging; * * @author Marcin Grzejszczak */ -public interface ContractVerifierFilter { +public interface ContractVerifierFilter { /** * @return @{code true} if the message should be passed through, @{code false} if the message should be filtered out, */ - boolean matches(ContractVerifierMessage message); + boolean matches(M message); } diff --git a/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-messaging-core/src/main/java/org/springframework/cloud/contract/verifier/messaging/ContractVerifierMessage.java b/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-messaging-core/src/main/java/org/springframework/cloud/contract/verifier/messaging/ContractVerifierMessage.java deleted file mode 100644 index c8510cd526..0000000000 --- a/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-messaging-core/src/main/java/org/springframework/cloud/contract/verifier/messaging/ContractVerifierMessage.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright 2013-2016 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.cloud.contract.verifier.messaging; - -import java.util.Map; - -/** - * Describes a message. Contains payload and headers. A message can be converted - * to another type (e.g. Spring Messaging Message) - * - * @author Marcin Grzejszczak - */ -public interface ContractVerifierMessage { - - /** - * Returns a payload of type {@code PAYLOAD} - */ - PAYLOAD getPayload(); - - /** - * Returns a map of headers - */ - Map getHeaders(); - - /** - * Returns a header for a given key - */ - Object getHeader(String key); - - /** - * Converts the message to {@code TYPE_TO_CONVERT_INTO} type - */ - TYPE_TO_CONVERT_INTO convert(); -} diff --git a/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-messaging-core/src/main/java/org/springframework/cloud/contract/verifier/messaging/ContractVerifierMessageBuilder.java b/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-messaging-core/src/main/java/org/springframework/cloud/contract/verifier/messaging/ContractVerifierMessageBuilder.java index 7325ac29de..e44fb310f1 100644 --- a/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-messaging-core/src/main/java/org/springframework/cloud/contract/verifier/messaging/ContractVerifierMessageBuilder.java +++ b/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-messaging-core/src/main/java/org/springframework/cloud/contract/verifier/messaging/ContractVerifierMessageBuilder.java @@ -24,15 +24,11 @@ import java.util.Map; * * @author Marcin Grzejszczak */ -public interface ContractVerifierMessageBuilder { +public interface ContractVerifierMessageBuilder { /** * Creates a {@link ContractVerifierMessage} from payload and headers */ - ContractVerifierMessage create(PAYLOAD payload, Map headers); + M create(T payload, Map headers); - /** - * Creates a {@link ContractVerifierMessage} from the {@code TYPE_TO_CONVERT_INTO} type - */ - ContractVerifierMessage create(TYPE_TO_CONVERT_INTO typeToConvertInto); } diff --git a/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-messaging-core/src/main/java/org/springframework/cloud/contract/verifier/messaging/ContractVerifierMessaging.java b/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-messaging-core/src/main/java/org/springframework/cloud/contract/verifier/messaging/ContractVerifierMessaging.java index 01c377aa8f..b46eb48f1d 100644 --- a/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-messaging-core/src/main/java/org/springframework/cloud/contract/verifier/messaging/ContractVerifierMessaging.java +++ b/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-messaging-core/src/main/java/org/springframework/cloud/contract/verifier/messaging/ContractVerifierMessaging.java @@ -26,26 +26,26 @@ import java.util.concurrent.TimeUnit; * * @author Marcin Grzejszczak */ -public interface ContractVerifierMessaging extends - ContractVerifierMessageBuilder { +public interface ContractVerifierMessaging extends + ContractVerifierMessageBuilder { /** * Sends the {@link ContractVerifierMessage} to the given destination. */ - void send(ContractVerifierMessage message, String destination); + void send(M message, String destination); /** * Sends the given payload with headers, to the given destination. */ - void send(PAYLOAD payload, Map headers, String destination); + void send(T payload, Map headers, String destination); /** * Receives the {@link ContractVerifierMessage} from the given destination. You can provide the timeout * for receiving that message. */ - ContractVerifierMessage receiveMessage(String destination, long timeout, TimeUnit timeUnit); + M receiveMessage(String destination, long timeout, TimeUnit timeUnit); /** * Receives the {@link ContractVerifierMessage} from the given destination. A default timeout will be applied. */ - ContractVerifierMessage receiveMessage(String destination); + M receiveMessage(String destination); } diff --git a/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-messaging-core/src/main/java/org/springframework/cloud/contract/verifier/messaging/noop/NoOpContractVerifierMessage.java b/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-messaging-core/src/main/java/org/springframework/cloud/contract/verifier/messaging/noop/NoOpContractVerifierMessage.java deleted file mode 100644 index c7c37514d5..0000000000 --- a/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-messaging-core/src/main/java/org/springframework/cloud/contract/verifier/messaging/noop/NoOpContractVerifierMessage.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright 2013-2016 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.cloud.contract.verifier.messaging.noop; - -import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessage; - -import java.util.Map; - -/** - * @author Marcin Grzejszczak - */ -public class NoOpContractVerifierMessage implements ContractVerifierMessage { - @Override - public Object getPayload() { - return null; - } - - @Override - public Map getHeaders() { - return null; - } - - @Override - public Object getHeader(String key) { - return null; - } - - @Override - public Object convert() { - return null; - } -} diff --git a/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-messaging-core/src/main/java/org/springframework/cloud/contract/verifier/messaging/noop/NoOpContractVerifierMessageBuilder.java b/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-messaging-core/src/main/java/org/springframework/cloud/contract/verifier/messaging/noop/NoOpContractVerifierMessageBuilder.java index edd9a3142c..39e1a3c10b 100644 --- a/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-messaging-core/src/main/java/org/springframework/cloud/contract/verifier/messaging/noop/NoOpContractVerifierMessageBuilder.java +++ b/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-messaging-core/src/main/java/org/springframework/cloud/contract/verifier/messaging/noop/NoOpContractVerifierMessageBuilder.java @@ -18,21 +18,17 @@ package org.springframework.cloud.contract.verifier.messaging.noop; import java.util.Map; -import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessage; import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessageBuilder; /** * @author Marcin Grzejszczak */ public class NoOpContractVerifierMessageBuilder - implements ContractVerifierMessageBuilder { - @Override - public ContractVerifierMessage create(Object o, Map headers) { - return new NoOpContractVerifierMessage(); - } + implements ContractVerifierMessageBuilder { @Override - public ContractVerifierMessage create(Object o) { - return new NoOpContractVerifierMessage(); + public Object create(T o, Map headers) { + return o; } + } diff --git a/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-messaging-core/src/main/java/org/springframework/cloud/contract/verifier/messaging/noop/NoOpContractVerifierMessaging.java b/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-messaging-core/src/main/java/org/springframework/cloud/contract/verifier/messaging/noop/NoOpContractVerifierMessaging.java index da28a92d56..6b6bc56ff2 100644 --- a/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-messaging-core/src/main/java/org/springframework/cloud/contract/verifier/messaging/noop/NoOpContractVerifierMessaging.java +++ b/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-messaging-core/src/main/java/org/springframework/cloud/contract/verifier/messaging/noop/NoOpContractVerifierMessaging.java @@ -19,40 +19,33 @@ package org.springframework.cloud.contract.verifier.messaging.noop; import java.util.Map; import java.util.concurrent.TimeUnit; -import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessage; import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessaging; /** * @author Marcin Grzejszczak */ -public class NoOpContractVerifierMessaging implements ContractVerifierMessaging { +public class NoOpContractVerifierMessaging implements ContractVerifierMessaging { @Override - public void send(ContractVerifierMessage message, String destination) { - + public void send(Object message, String destination) { } @Override - public void send(Object payload, Map headers, String destination) { - + public void send(T payload, Map headers, String destination) { } @Override - public ContractVerifierMessage receiveMessage(String destination, long timeout, TimeUnit timeUnit) { + public Object receiveMessage(String destination, long timeout, TimeUnit timeUnit) { return null; } @Override - public ContractVerifierMessage receiveMessage(String destination) { + public Object receiveMessage(String destination) { return null; } @Override - public ContractVerifierMessage create(Object o, Map headers) { - return null; + public Object create(T o, Map headers) { + return o; } - @Override - public ContractVerifierMessage create(Object o) { - return null; - } } diff --git a/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-stream/src/main/java/org/springframework/cloud/contract/verifier/messaging/stream/ContractVerifierStreamAutoConfiguration.java b/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-stream/src/main/java/org/springframework/cloud/contract/verifier/messaging/stream/ContractVerifierStreamAutoConfiguration.java index 3ec4fbb315..22686a8c6c 100644 --- a/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-stream/src/main/java/org/springframework/cloud/contract/verifier/messaging/stream/ContractVerifierStreamAutoConfiguration.java +++ b/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-stream/src/main/java/org/springframework/cloud/contract/verifier/messaging/stream/ContractVerifierStreamAutoConfiguration.java @@ -30,15 +30,15 @@ import org.springframework.messaging.Message; public class ContractVerifierStreamAutoConfiguration { @Bean - ContractVerifierMessaging contractVerifierMessaging( + ContractVerifierMessaging> contractVerifierMessaging( ApplicationContext applicationContext, - ContractVerifierMessageBuilder> contractVerifierMessageBuilder) { - return new ContractVerifierStreamMessaging(applicationContext, + ContractVerifierMessageBuilder> contractVerifierMessageBuilder) { + return new ContractVerifierStreamMessaging(applicationContext, contractVerifierMessageBuilder); } @Bean - ContractVerifierMessageBuilder contractVerifierMessageBuilder() { - return new ContractVerifierStreamMessageBuilder<>(); + ContractVerifierMessageBuilder> contractVerifierMessageBuilder() { + return new ContractVerifierStreamMessageBuilder(); } } diff --git a/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-stream/src/main/java/org/springframework/cloud/contract/verifier/messaging/stream/ContractVerifierStreamMessageBuilder.java b/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-stream/src/main/java/org/springframework/cloud/contract/verifier/messaging/stream/ContractVerifierStreamMessageBuilder.java index 90270657b4..0ff7d77b84 100644 --- a/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-stream/src/main/java/org/springframework/cloud/contract/verifier/messaging/stream/ContractVerifierStreamMessageBuilder.java +++ b/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-stream/src/main/java/org/springframework/cloud/contract/verifier/messaging/stream/ContractVerifierStreamMessageBuilder.java @@ -23,24 +23,15 @@ import org.springframework.messaging.Message; import org.springframework.messaging.MessageHeaders; import org.springframework.messaging.support.MessageBuilder; -import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessage; - /** * @author Marcin Grzejszczak */ -public class ContractVerifierStreamMessageBuilder implements - ContractVerifierMessageBuilder> { +public class ContractVerifierStreamMessageBuilder implements + ContractVerifierMessageBuilder> { @Override - public ContractVerifierMessage> create(T payload, Map headers) { - return new StreamMessage<>(MessageBuilder.createMessage(payload, new MessageHeaders(headers))); + public Message create(T payload, Map headers) { + return MessageBuilder.createMessage(payload, new MessageHeaders(headers)); } - @Override - public ContractVerifierMessage> create(Message message) { - if (message == null) { - return null; - } - return new StreamMessage<>(message); - } } diff --git a/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-stream/src/main/java/org/springframework/cloud/contract/verifier/messaging/stream/ContractVerifierStreamMessaging.java b/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-stream/src/main/java/org/springframework/cloud/contract/verifier/messaging/stream/ContractVerifierStreamMessaging.java index ea47534558..d30d312e29 100644 --- a/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-stream/src/main/java/org/springframework/cloud/contract/verifier/messaging/stream/ContractVerifierStreamMessaging.java +++ b/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-stream/src/main/java/org/springframework/cloud/contract/verifier/messaging/stream/ContractVerifierStreamMessaging.java @@ -22,7 +22,6 @@ import java.util.concurrent.TimeUnit; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessage; import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessageBuilder; import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessaging; import org.springframework.cloud.stream.config.BindingProperties; @@ -35,32 +34,32 @@ import org.springframework.messaging.MessageChannel; /** * @author Marcin Grzejszczak */ -public class ContractVerifierStreamMessaging implements - ContractVerifierMessaging> { +public class ContractVerifierStreamMessaging implements + ContractVerifierMessaging> { private static final Logger log = LoggerFactory.getLogger(ContractVerifierStreamMessaging.class); private final ApplicationContext context; private final MessageCollector messageCollector; - private final ContractVerifierMessageBuilder> builder; + private final ContractVerifierMessageBuilder> builder; @Autowired - public ContractVerifierStreamMessaging(ApplicationContext context, ContractVerifierMessageBuilder> builder) { + public ContractVerifierStreamMessaging(ApplicationContext context, ContractVerifierMessageBuilder> builder) { this.context = context; this.messageCollector = context.getBean(MessageCollector.class); this.builder = builder; } @Override - public void send(T payload, Map headers, String destination) { + public void send(T payload, Map headers, String destination) { send(builder.create(payload, headers), destination); } @Override - public void send(ContractVerifierMessage> message, String destination) { + public void send(Message message, String destination) { try { MessageChannel messageChannel = context.getBean(resolvedDestination(destination), MessageChannel.class); - messageChannel.send(message.convert()); + messageChannel.send(message); } catch (Exception e) { log.error("Exception occurred while trying to send a message [" + message + "] " + "to a channel with name [" + destination + "]", e); @@ -69,11 +68,10 @@ public class ContractVerifierStreamMessaging implements } @Override - @SuppressWarnings("unchecked") - public ContractVerifierMessage> receiveMessage(String destination, long timeout, TimeUnit timeUnit) { + public Message receiveMessage(String destination, long timeout, TimeUnit timeUnit) { try { MessageChannel messageChannel = context.getBean(resolvedDestination(destination), MessageChannel.class); - return builder.create((Message) messageCollector.forChannel(messageChannel).poll(timeout, timeUnit)); + return messageCollector.forChannel(messageChannel).poll(timeout, timeUnit); } catch (Exception e) { log.error("Exception occurred while trying to read a message from " + " a channel with name [" + destination + "]", e); @@ -95,17 +93,13 @@ public class ContractVerifierStreamMessaging implements } @Override - public ContractVerifierMessage> receiveMessage(String destination) { + public Message receiveMessage(String destination) { return receiveMessage(destination, 5, TimeUnit.SECONDS); } @Override - public ContractVerifierMessage> create(T t, Map headers) { + public Message create(T t, Map headers) { return builder.create(t, headers); } - @Override - public ContractVerifierMessage> create(Message message) { - return builder.create(message); - } } diff --git a/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-stream/src/main/java/org/springframework/cloud/contract/verifier/messaging/stream/StreamMessage.java b/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-stream/src/main/java/org/springframework/cloud/contract/verifier/messaging/stream/StreamMessage.java deleted file mode 100644 index 7582daf46a..0000000000 --- a/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-stream/src/main/java/org/springframework/cloud/contract/verifier/messaging/stream/StreamMessage.java +++ /dev/null @@ -1,54 +0,0 @@ -/* - * Copyright 2013-2016 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package org.springframework.cloud.contract.verifier.messaging.stream; - -import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessage; -import org.springframework.messaging.Message; -import org.springframework.messaging.MessageHeaders; - -/** - * @author Marcin Grzejszczak - */ -public class StreamMessage implements ContractVerifierMessage> { - - private final Message delegate; - - public StreamMessage(Message delegate) { - this.delegate = delegate; - } - - @Override - public T getPayload() { - return delegate.getPayload(); - } - - @Override - public MessageHeaders getHeaders() { - return delegate.getHeaders(); - } - - @Override - public Object getHeader(String key) { - return getHeaders().get(key); - } - - @Override - public Message convert() { - return delegate; - } - -}