Consolidate rest of messaging into verifier core

This commit is contained in:
Dave Syer
2016-07-19 13:17:43 +01:00
parent 16c892682d
commit 618da21f9e
24 changed files with 51 additions and 181 deletions

View File

@@ -13,10 +13,6 @@
<name>Spring Cloud Contract Sample Camel</name>
<description>Spring Cloud Contract Sample Camel</description>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-contract-verifier-core</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-spring-boot-starter</artifactId>
@@ -39,7 +35,7 @@
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-contract-verifier-camel</artifactId>
<artifactId>spring-cloud-contract-verifier-core</artifactId>
<scope>test</scope>
</dependency>
<dependency>

View File

@@ -13,23 +13,17 @@
<name>Spring Cloud Contract Sample Spring Integration</name>
<description>Spring Cloud Contract Sample Spring Integration</description>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-contract-verifier-core</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
<version>${spring-boot.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-integration</artifactId>
<version>${spring-boot.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-contract-verifier-integration</artifactId>
<artifactId>spring-cloud-contract-verifier-core</artifactId>
<scope>test</scope>
</dependency>
<dependency>

View File

@@ -13,28 +13,21 @@
<name>Spring Cloud Contract Sample Spring</name>
<description>Spring Cloud Contract Sample Spring</description>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-contract-verifier-core</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
<version>${spring-boot.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-activemq</artifactId>
<version>${spring-boot.version}</version>
</dependency>
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-pool</artifactId>
<version>5.12.1</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-contract-verifier-messaging-core</artifactId>
<artifactId>spring-cloud-contract-verifier-core</artifactId>
<scope>test</scope>
</dependency>
<dependency>

View File

@@ -13,18 +13,18 @@
<name>Spring Cloud Contract Sample Stream</name>
<description>Spring Cloud Contract Sample Spring Cloud Stream</description>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-contract-verifier-core</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-stream-rabbit</artifactId>
<version>${spring-cloud-stream.version}</version>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-contract-verifier-stream</artifactId>
<artifactId>spring-cloud-stream-test-support</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-contract-verifier-core</artifactId>
<scope>test</scope>
</dependency>
<dependency>

View File

@@ -19,7 +19,6 @@
<modules>
<module>spring-cloud-contract-verifier-core</module>
<module>spring-cloud-contract-verifier-messaging</module>
</modules>
<build>

View File

@@ -21,10 +21,29 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-test-autoconfigure</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-messaging</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-spring</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-stream-test-support</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</dependency>
<dependency>
<groupId>com.github.tomakehurst</groupId>
<artifactId>wiremock</artifactId>

View File

@@ -19,6 +19,8 @@ package org.springframework.cloud.contract.verifier.messaging.camel;
import org.apache.camel.CamelContext;
import org.apache.camel.Message;
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.cloud.contract.verifier.messaging.MessageVerifier;
import org.springframework.cloud.contract.verifier.messaging.internal.ContractVerifierMessage;
import org.springframework.cloud.contract.verifier.messaging.internal.ContractVerifierMessaging;
@@ -30,16 +32,19 @@ import org.springframework.context.annotation.Configuration;
* @author Marcin Grzejszczak
*/
@Configuration
@ConditionalOnClass(Message.class)
@AutoConfigureBefore(NoOpContractVerifierAutoConfiguration.class)
public class ContractVerifierCamelConfiguration {
@Bean
@ConditionalOnMissingBean
MessageVerifier<Message> contractVerifierMessageExchange(
CamelContext context) {
return new CamelStubMessages(context);
}
@Bean
@ConditionalOnMissingBean
public ContractVerifierMessaging<Message> contractVerifierMessaging(
MessageVerifier<Message> exchange) {
return new ContractVerifierCamelHelper(exchange);

View File

@@ -16,11 +16,15 @@
package org.springframework.cloud.contract.verifier.messaging.integration;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.cloud.contract.verifier.messaging.MessageVerifier;
import org.springframework.cloud.contract.verifier.messaging.internal.ContractVerifierMessage;
import org.springframework.cloud.contract.verifier.messaging.internal.ContractVerifierMessaging;
import org.springframework.cloud.contract.verifier.messaging.noop.NoOpContractVerifierAutoConfiguration;
import org.springframework.cloud.contract.verifier.messaging.stream.ContractVerifierStreamAutoConfiguration;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@@ -30,16 +34,20 @@ import org.springframework.messaging.Message;
* @author Marcin Grzejszczak
*/
@Configuration
@ConditionalOnClass(Message.class)
@AutoConfigureBefore(NoOpContractVerifierAutoConfiguration.class)
@AutoConfigureAfter(ContractVerifierStreamAutoConfiguration.class)
public class ContractVerifierIntegrationConfiguration<T> {
@Bean
@ConditionalOnMissingBean
public MessageVerifier<Message<?>> contractVerifierMessageExchange(
ApplicationContext applicationContext) {
return new SpringIntegrationStubMessages(applicationContext);
}
@Bean
@ConditionalOnMissingBean
public ContractVerifierMessaging<Message<?>> contractVerifierMessaging(
MessageVerifier<Message<?>> exchange) {
return new ContractVerifierHelper(exchange);

View File

@@ -17,11 +17,14 @@
package org.springframework.cloud.contract.verifier.messaging.stream;
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.cloud.contract.verifier.messaging.MessageVerifier;
import org.springframework.cloud.contract.verifier.messaging.internal.ContractVerifierMessage;
import org.springframework.cloud.contract.verifier.messaging.internal.ContractVerifierMessaging;
import org.springframework.cloud.contract.verifier.messaging.noop.NoOpContractVerifierAutoConfiguration;
import org.springframework.cloud.stream.annotation.EnableBinding;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@@ -31,17 +34,20 @@ import org.springframework.messaging.Message;
* @author Marcin Grzejszczak
*/
@Configuration
@ConditionalOnClass(EnableBinding.class)
@ConditionalOnProperty(name="stubrunner.stream.enabled", havingValue="true", matchIfMissing=true)
@AutoConfigureBefore(NoOpContractVerifierAutoConfiguration.class)
public class ContractVerifierStreamAutoConfiguration {
@Bean
@ConditionalOnMissingBean
MessageVerifier<Message<?>> contractVerifierMessageExchange(
ApplicationContext applicationContext) {
return new StreamStubMessages(applicationContext);
}
@Bean
@ConditionalOnMissingBean
public ContractVerifierMessaging<?> contractVerifierMessagingConverter(
MessageVerifier<Message<?>> exchange) {
return new ContractVerifierHelper(exchange);

View File

@@ -1,3 +1,6 @@
# Auto Configuration
org.springframework.cloud.contract.verifier.messaging.boot.AutoConfigureStubMessages=\
org.springframework.cloud.contract.verifier.messaging.boot.AutoConfigureMessageVerifier=\
org.springframework.cloud.contract.verifier.messaging.stream.ContractVerifierStreamAutoConfiguration,\
org.springframework.cloud.contract.verifier.messaging.integration.ContractVerifierIntegrationConfiguration,\
org.springframework.cloud.contract.verifier.messaging.camel.ContractVerifierCamelConfiguration,\
org.springframework.cloud.contract.verifier.messaging.noop.NoOpContractVerifierAutoConfiguration

View File

@@ -1,23 +0,0 @@
= Spring Cloud Contract Verifier Messaging
Spring Cloud Contract Verifier allows you to verify your application that uses messaging as means of communication.
All of our integrations are working with Spring but you can also set one yourself.
== Integrations
You can use one of the three integration configurations:
- Apache Camel
- Spring Integration
- Spring Cloud Stream
If you're using Spring Boot, the aforementioned test configurations will be appended automatically.
== Manual Integration
The `spring-cloud-contract-verifier-messaging-core` module contains 3 main interfaces:
- `ContractVerifierMessage` - describes a message received / sent to a channel / queue / topic etc.
- `ContractVerifierMessageBuilder` - describes how to build a message
- `ContractVerifierMessaging` - class that allows you to build, send and receive messages

View File

@@ -1,26 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-contract-verifier</artifactId>
<version>1.0.0.BUILD-SNAPSHOT</version>
<relativePath>..</relativePath>
</parent>
<artifactId>spring-cloud-contract-verifier-messaging</artifactId>
<packaging>pom</packaging>
<name>Spring Cloud Contract Verifier Build</name>
<description>Spring Cloud Contract Verifier Build</description>
<modules>
<module>spring-cloud-contract-verifier-camel</module>
<module>spring-cloud-contract-verifier-integration</module>
<module>spring-cloud-contract-verifier-stream</module>
</modules>
</project>

View File

@@ -1,29 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-contract-verifier-messaging</artifactId>
<version>1.0.0.BUILD-SNAPSHOT</version>
<relativePath>..</relativePath>
</parent>
<artifactId>spring-cloud-contract-verifier-camel</artifactId>
<packaging>jar</packaging>
<name>Spring Cloud Contract Verifier Camel</name>
<description>Spring Cloud Contract Verifier Camel</description>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-contract-verifier-core</artifactId>
</dependency>
<dependency>
<groupId>org.apache.camel</groupId>
<artifactId>camel-spring</artifactId>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</dependency>
</dependencies>
</project>

View File

@@ -1,3 +0,0 @@
# Auto Configuration
org.springframework.cloud.contract.verifier.messaging.boot.AutoConfigureMessageVerifier=\
org.springframework.cloud.contract.verifier.messaging.camel.ContractVerifierCamelConfiguration

View File

@@ -1,29 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-contract-verifier-messaging</artifactId>
<version>1.0.0.BUILD-SNAPSHOT</version>
<relativePath>..</relativePath>
</parent>
<artifactId>spring-cloud-contract-verifier-integration</artifactId>
<packaging>jar</packaging>
<name>Spring Cloud Contract Verifier Integration</name>
<description>Spring Cloud Contract Verifier Integration</description>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-contract-verifier-core</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-messaging</artifactId>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</dependency>
</dependencies>
</project>

View File

@@ -1,3 +0,0 @@
# Auto Configuration
org.springframework.cloud.contract.verifier.messaging.boot.AutoConfigureMessageVerifier=\
org.springframework.cloud.contract.verifier.messaging.integration.ContractVerifierIntegrationConfiguration

View File

@@ -1,37 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-contract-verifier-messaging</artifactId>
<version>1.0.0.BUILD-SNAPSHOT</version>
<relativePath>..</relativePath>
</parent>
<artifactId>spring-cloud-contract-verifier-stream</artifactId>
<packaging>jar</packaging>
<name>Spring Cloud Contract Verifier Stream</name>
<description>Spring Cloud Contract Verifier Messaging Stream</description>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-contract-verifier-core</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-stream</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-stream-test-support</artifactId>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</dependency>
<dependency>
<groupId>com.toomuchcoding.jsonassert</groupId>
<artifactId>jsonassert</artifactId>
</dependency>
</dependencies>
</project>

View File

@@ -1,3 +0,0 @@
# Auto Configuration
org.springframework.cloud.contract.verifier.messaging.boot.AutoConfigureMessageVerifier=\
org.springframework.cloud.contract.verifier.messaging.stream.ContractVerifierStreamAutoConfiguration