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 bef4fae45d..c711f5cefb 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
@@ -26,6 +26,7 @@ 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.test.annotation.DirtiesContext
import org.springframework.test.context.ContextConfiguration
@@ -41,6 +42,7 @@ import com.toomuchcoding.jsonassert.JsonAssertion
// Context configuration would end up in base class
@ContextConfiguration(classes = [CamelMessagingApplication], loader = SpringBootContextLoader)
@DirtiesContext
+@AutoConfigureContractVerifierMessaging
public class CamelMessagingApplicationSpec extends Specification {
// ALL CASES
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 ac6b2b7d02..06d1249744 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
@@ -24,6 +24,7 @@ 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.test.annotation.DirtiesContext
import org.springframework.test.context.ContextConfiguration
@@ -35,6 +36,7 @@ import com.toomuchcoding.jsonassert.JsonAssertion
// Context configuration would end up in base class
@ContextConfiguration(classes = [IntegrationMessagingApplication], loader = SpringBootContextLoader)
@DirtiesContext
+@AutoConfigureContractVerifierMessaging
public class IntegrationMessagingApplicationSpec extends Specification {
// ALL CASES
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 30b34752e1..363b62b32d 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
@@ -25,6 +25,7 @@ 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.test.annotation.DirtiesContext
import org.springframework.test.context.ContextConfiguration
@@ -40,6 +41,7 @@ import com.toomuchcoding.jsonassert.JsonAssertion
// Context configuration would end up in base class
@ContextConfiguration(classes = [SpringMessagingApplication], loader = SpringBootContextLoader)
@DirtiesContext
+@AutoConfigureContractVerifierMessaging
public class SpringApplicationSpec extends Specification {
// ALL CASES
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 ecd57f8bcd..b6c730a03b 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
@@ -24,6 +24,7 @@ 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.test.annotation.DirtiesContext
import org.springframework.test.context.ContextConfiguration
@@ -38,6 +39,7 @@ import com.toomuchcoding.jsonassert.JsonAssertion
// Context configuration would end up in base class
@ContextConfiguration(classes = [StreamMessagingApplication], loader = SpringBootContextLoader)
@DirtiesContext
+@AutoConfigureContractVerifierMessaging
public class StreamMessagingApplicationSpec extends Specification {
// ALL CASES
diff --git a/samples/samples-standalone/contract-verifier-sample-stream-sink/src/test/java/com/example/sink/ContractVerifierSampleStreamSinkApplicationTests.java b/samples/samples-standalone/contract-verifier-sample-stream-sink/src/test/java/com/example/sink/ContractVerifierSampleStreamSinkApplicationTests.java
index 6c0d0234ce..95e1348a33 100644
--- a/samples/samples-standalone/contract-verifier-sample-stream-sink/src/test/java/com/example/sink/ContractVerifierSampleStreamSinkApplicationTests.java
+++ b/samples/samples-standalone/contract-verifier-sample-stream-sink/src/test/java/com/example/sink/ContractVerifierSampleStreamSinkApplicationTests.java
@@ -2,13 +2,11 @@ package com.example.sink;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.springframework.boot.test.SpringApplicationConfiguration;
+import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
-import com.example.sink.ContractVerifierSampleStreamSinkApplication;
-
@RunWith(SpringJUnit4ClassRunner.class)
-@SpringApplicationConfiguration(classes = ContractVerifierSampleStreamSinkApplication.class)
+@SpringBootTest
public class ContractVerifierSampleStreamSinkApplicationTests {
@Test
diff --git a/samples/samples-standalone/contract-verifier-sample-stream-sink/src/test/java/com/example/sink/MessageConsumedTests.java b/samples/samples-standalone/contract-verifier-sample-stream-sink/src/test/java/com/example/sink/MessageConsumedTests.java
index 98d19cef3f..c7c9358873 100644
--- a/samples/samples-standalone/contract-verifier-sample-stream-sink/src/test/java/com/example/sink/MessageConsumedTests.java
+++ b/samples/samples-standalone/contract-verifier-sample-stream-sink/src/test/java/com/example/sink/MessageConsumedTests.java
@@ -29,7 +29,7 @@ import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
* @author Marius Bogoevici
*/
@RunWith(SpringJUnit4ClassRunner.class)
-@SpringBootTest(classes = ContractVerifierSampleStreamSinkApplication.class, webEnvironment = WebEnvironment.NONE, properties = "spring.cloud.stream.bindings.input.destination=sensor-data")
+@SpringBootTest(webEnvironment = WebEnvironment.NONE, properties = "spring.cloud.stream.bindings.input.destination=sensor-data")
@AutoConfigureStubRunner
public class MessageConsumedTests {
diff --git a/samples/samples-standalone/contract-verifier-sample-stream-source/src/test/java/com/example/source/ContractVerifierSampleStreamSourceApplicationTests.java b/samples/samples-standalone/contract-verifier-sample-stream-source/src/test/java/com/example/source/ContractVerifierSampleStreamSourceApplicationTests.java
index 24e2bc2173..fe1133c580 100644
--- a/samples/samples-standalone/contract-verifier-sample-stream-source/src/test/java/com/example/source/ContractVerifierSampleStreamSourceApplicationTests.java
+++ b/samples/samples-standalone/contract-verifier-sample-stream-source/src/test/java/com/example/source/ContractVerifierSampleStreamSourceApplicationTests.java
@@ -2,13 +2,11 @@ package com.example.source;
import org.junit.Test;
import org.junit.runner.RunWith;
-import org.springframework.boot.test.SpringApplicationConfiguration;
+import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
-import com.example.source.ContractVerifierSampleStreamSourceApplication;
-
@RunWith(SpringJUnit4ClassRunner.class)
-@SpringApplicationConfiguration(classes = ContractVerifierSampleStreamSourceApplication.class)
+@SpringBootTest
public class ContractVerifierSampleStreamSourceApplicationTests {
@Test
diff --git a/samples/samples-standalone/contract-verifier-sample-stream-source/src/test/java/com/example/source/SensorSourceTestBase.java b/samples/samples-standalone/contract-verifier-sample-stream-source/src/test/java/com/example/source/SensorSourceTestBase.java
index 82c270161f..eaeae4a67d 100644
--- a/samples/samples-standalone/contract-verifier-sample-stream-source/src/test/java/com/example/source/SensorSourceTestBase.java
+++ b/samples/samples-standalone/contract-verifier-sample-stream-source/src/test/java/com/example/source/SensorSourceTestBase.java
@@ -18,12 +18,9 @@ package com.example.source;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.test.IntegrationTest;
-import org.springframework.boot.test.SpringApplicationConfiguration;
+import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
-import com.example.source.ContractVerifierSampleStreamSourceApplication;
-
/**
* Base class for sensor autogenerated tests (used by Spring Cloud Contract).
*
@@ -32,8 +29,7 @@ import com.example.source.ContractVerifierSampleStreamSourceApplication;
* @author Marius Bogoevici
*/
@RunWith(SpringJUnit4ClassRunner.class)
-@SpringApplicationConfiguration(classes = ContractVerifierSampleStreamSourceApplication.class)
-@IntegrationTest("spring.cloud.stream.bindings.output.destination=sensor-data")
+@SpringBootTest(classes = ContractVerifierSampleStreamSourceApplication.class, properties="spring.cloud.stream.bindings.output.destination=sensor-data")
public abstract class SensorSourceTestBase {
@Autowired
diff --git a/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-camel/src/main/resources/META-INF/spring.factories b/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-camel/src/main/resources/META-INF/spring.factories
index 4515c7bbdb..ee9445b62d 100644
--- a/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-camel/src/main/resources/META-INF/spring.factories
+++ b/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-camel/src/main/resources/META-INF/spring.factories
@@ -1,3 +1,3 @@
# Auto Configuration
-org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.springframework.cloud.contract.verifier.messaging.boot.AutoConfigureContractVerifierMessaging=\
org.springframework.cloud.contract.verifier.messaging.camel.ContractVerifierCamelConfiguration
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 3f1ddc2c97..7d69bddba5 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
@@ -20,17 +20,24 @@ import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMes
import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMessaging;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
/**
* @author Marcin Grzejszczak
*/
+@Configuration
public class ContractVerifierIntegrationConfiguration {
- @Bean ContractVerifierMessaging contractVerifierMessaging(ApplicationContext applicationContext, ContractVerifierMessageBuilder contractVerifierMessageBuilder) {
- return new ContractVerifierIntegrationMessaging(applicationContext, contractVerifierMessageBuilder);
+ @Bean
+ public ContractVerifierMessaging, ?> contractVerifierMessaging(
+ ApplicationContext applicationContext,
+ ContractVerifierMessageBuilder,?> contractVerifierMessageBuilder) {
+ return new ContractVerifierIntegrationMessaging<>(applicationContext,
+ contractVerifierMessageBuilder);
}
- @Bean ContractVerifierMessageBuilder contractVerifierMessageBuilder() {
- return new ContractVerifierIntegrationMessageBuilder();
+ @Bean
+ 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/resources/META-INF/spring.factories b/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-integration/src/main/resources/META-INF/spring.factories
index 2251d19bd0..4ef29caa56 100644
--- a/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-integration/src/main/resources/META-INF/spring.factories
+++ b/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-integration/src/main/resources/META-INF/spring.factories
@@ -1,3 +1,3 @@
# Auto Configuration
-org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
+org.springframework.cloud.contract.verifier.messaging.boot.AutoConfigureContractVerifierMessaging=\
org.springframework.cloud.contract.verifier.messaging.integration.ContractVerifierIntegrationConfiguration
diff --git a/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-messaging-core/pom.xml b/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-messaging-core/pom.xml
index 5cdf428227..316ccfaee4 100644
--- a/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-messaging-core/pom.xml
+++ b/spring-cloud-contract-verifier/spring-cloud-contract-verifier-messaging/spring-cloud-contract-verifier-messaging-core/pom.xml
@@ -21,5 +21,9 @@
javax.inject
javax.inject
+
+ org.springframework.boot
+ spring-boot-test-autoconfigure
+
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/boot/AutoConfigureContractVerifierMessaging.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/boot/AutoConfigureContractVerifierMessaging.java
new file mode 100644
index 0000000000..42d94c55bd
--- /dev/null
+++ 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/boot/AutoConfigureContractVerifierMessaging.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright 2012-2015 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.boot;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+import org.springframework.boot.autoconfigure.ImportAutoConfiguration;
+
+/**
+ * @author Dave Syer
+ *
+ */
+@Target(ElementType.TYPE)
+@Retention(RetentionPolicy.RUNTIME)
+@Documented
+@ImportAutoConfiguration
+public @interface AutoConfigureContractVerifierMessaging {
+
+}
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 00d445917d..3ec4fbb315 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
@@ -21,6 +21,7 @@ import org.springframework.cloud.contract.verifier.messaging.ContractVerifierMes
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
+import org.springframework.messaging.Message;
/**
* @author Marcin Grzejszczak
@@ -28,11 +29,16 @@ import org.springframework.context.annotation.Configuration;
@Configuration
public class ContractVerifierStreamAutoConfiguration {
- @Bean ContractVerifierMessaging contractVerifierMessaging(ApplicationContext applicationContext, ContractVerifierMessageBuilder contractVerifierMessageBuilder) {
- return new ContractVerifierStreamMessaging(applicationContext, contractVerifierMessageBuilder);
+ @Bean
+ ContractVerifierMessaging, ?> contractVerifierMessaging(
+ ApplicationContext applicationContext,
+ ContractVerifierMessageBuilder