diff --git a/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/annotation/Bindings.java b/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/annotation/Bindings.java index ac68d78e7..30c89f0a1 100644 --- a/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/annotation/Bindings.java +++ b/spring-cloud-stream/src/main/java/org/springframework/cloud/stream/annotation/Bindings.java @@ -31,6 +31,8 @@ import org.springframework.beans.factory.annotation.Qualifier; * * @author Dave Syer * @author Marius Bogoevici + * @deprecated As of 1.1 for being redundant (beans qualified by it are already + * uniquely identified by their type) */ @Qualifier @@ -38,6 +40,7 @@ import org.springframework.beans.factory.annotation.Qualifier; @Retention(RetentionPolicy.RUNTIME) @Inherited @Documented +@Deprecated public @interface Bindings { Class value(); diff --git a/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/ArbitraryInterfaceBindingTestsWithBindingTargets.java b/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/ArbitraryInterfaceWithBindingTargetsTests.java similarity index 74% rename from spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/ArbitraryInterfaceBindingTestsWithBindingTargets.java rename to spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/ArbitraryInterfaceWithBindingTargetsTests.java index 578a2bc76..cb7a4a1dc 100644 --- a/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/ArbitraryInterfaceBindingTestsWithBindingTargets.java +++ b/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/ArbitraryInterfaceWithBindingTargetsTests.java @@ -23,7 +23,6 @@ import org.mockito.Mockito; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.cloud.stream.annotation.Bindings; import org.springframework.cloud.stream.annotation.EnableBinding; import org.springframework.cloud.stream.utils.MockBinderRegistryConfiguration; import org.springframework.context.annotation.Import; @@ -39,29 +38,29 @@ import static org.mockito.Mockito.verifyNoMoreInteractions; * @author Marius Bogoevici */ @RunWith(SpringJUnit4ClassRunner.class) -@SpringBootTest(classes = ArbitraryInterfaceBindingTestsWithBindingTargets.TestFooChannels.class) -public class ArbitraryInterfaceBindingTestsWithBindingTargets { +@SpringBootTest(classes = ArbitraryInterfaceWithBindingTargetsTests.TestFooChannels.class) +public class ArbitraryInterfaceWithBindingTargetsTests { @Autowired - @Bindings(ArbitraryInterfaceBindingTestsWithBindingTargets.TestFooChannels.class) public FooChannels fooChannels; @SuppressWarnings("rawtypes") @Autowired - private Binder binder; + private BinderFactory binderFactory; @SuppressWarnings("unchecked") @Test public void testArbitraryInterfaceChannelsBound() { - verify(this.binder).bindConsumer(eq("someQueue.0"), anyString(), eq(this.fooChannels.foo()), + Binder binder = binderFactory.getBinder(null); + verify(binder).bindConsumer(eq("someQueue.0"), anyString(), eq(this.fooChannels.foo()), Mockito.any()); - verify(this.binder).bindConsumer(eq("someQueue.1"), anyString(), eq(this.fooChannels.bar()), + verify(binder).bindConsumer(eq("someQueue.1"), anyString(), eq(this.fooChannels.bar()), Mockito.any()); - verify(this.binder).bindProducer(eq("someQueue.2"), eq(this.fooChannels.baz()), + verify(binder).bindProducer(eq("someQueue.2"), eq(this.fooChannels.baz()), Mockito.any()); - verify(this.binder).bindProducer(eq("someQueue.3"), eq(this.fooChannels.qux()), + verify(binder).bindProducer(eq("someQueue.3"), eq(this.fooChannels.qux()), Mockito.any()); - verifyNoMoreInteractions(this.binder); + verifyNoMoreInteractions(binder); } @EnableBinding(FooChannels.class) diff --git a/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/ArbitraryInterfaceBindingTestsWithDefaults.java b/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/ArbitraryInterfaceWithDefaultsTests.java similarity index 74% rename from spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/ArbitraryInterfaceBindingTestsWithDefaults.java rename to spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/ArbitraryInterfaceWithDefaultsTests.java index 0f7b80d19..22bf635a4 100644 --- a/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/ArbitraryInterfaceBindingTestsWithDefaults.java +++ b/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/ArbitraryInterfaceWithDefaultsTests.java @@ -23,7 +23,6 @@ import org.mockito.Mockito; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.cloud.stream.annotation.Bindings; import org.springframework.cloud.stream.annotation.EnableBinding; import org.springframework.cloud.stream.utils.MockBinderRegistryConfiguration; import org.springframework.context.annotation.Import; @@ -38,29 +37,29 @@ import static org.mockito.Mockito.verifyNoMoreInteractions; * @author Marius Bogoevici */ @RunWith(SpringJUnit4ClassRunner.class) -@SpringBootTest(classes = ArbitraryInterfaceBindingTestsWithDefaults.TestFooChannels.class) -public class ArbitraryInterfaceBindingTestsWithDefaults { +@SpringBootTest(classes = ArbitraryInterfaceWithDefaultsTests.TestFooChannels.class) +public class ArbitraryInterfaceWithDefaultsTests { @Autowired - @Bindings(ArbitraryInterfaceBindingTestsWithDefaults.TestFooChannels.class) public FooChannels fooChannels; @SuppressWarnings("rawtypes") @Autowired - private Binder binder; + private BinderFactory binderFactory; @SuppressWarnings("unchecked") @Test public void testArbitraryInterfaceChannelsBound() { - verify(this.binder).bindConsumer(eq("foo"), anyString(), eq(this.fooChannels.foo()), + final Binder binder = this.binderFactory.getBinder(null); + verify(binder).bindConsumer(eq("foo"), anyString(), eq(this.fooChannels.foo()), Mockito.any()); - verify(this.binder).bindConsumer(eq("bar"), anyString(), eq(this.fooChannels.bar()), + verify(binder).bindConsumer(eq("bar"), anyString(), eq(this.fooChannels.bar()), Mockito.any()); - verify(this.binder).bindProducer(eq("baz"), eq(this.fooChannels.baz()), + verify(binder).bindProducer(eq("baz"), eq(this.fooChannels.baz()), Mockito.any()); - verify(this.binder).bindProducer(eq("qux"), eq(this.fooChannels.qux()), + verify(binder).bindProducer(eq("qux"), eq(this.fooChannels.qux()), Mockito.any()); - verifyNoMoreInteractions(this.binder); + verifyNoMoreInteractions(binder); } @EnableBinding(FooChannels.class) diff --git a/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/ProcessorBindingTestsWithBindingTargets.java b/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/ProcessorBindingWithBindingTargetsTests.java similarity index 84% rename from spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/ProcessorBindingTestsWithBindingTargets.java rename to spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/ProcessorBindingWithBindingTargetsTests.java index 2a705518a..269668cb0 100644 --- a/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/ProcessorBindingTestsWithBindingTargets.java +++ b/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/ProcessorBindingWithBindingTargetsTests.java @@ -23,7 +23,6 @@ import org.mockito.Mockito; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.cloud.stream.annotation.Bindings; import org.springframework.cloud.stream.annotation.EnableBinding; import org.springframework.cloud.stream.messaging.Processor; import org.springframework.cloud.stream.utils.MockBinderRegistryConfiguration; @@ -39,23 +38,23 @@ import static org.mockito.Mockito.verify; * @author Marius Bogoevici */ @RunWith(SpringJUnit4ClassRunner.class) -@SpringBootTest(classes = ProcessorBindingTestsWithBindingTargets.TestProcessor.class) -public class ProcessorBindingTestsWithBindingTargets { +@SpringBootTest(classes = ProcessorBindingWithBindingTargetsTests.TestProcessor.class) +public class ProcessorBindingWithBindingTargetsTests { @SuppressWarnings("rawtypes") @Autowired - private Binder binder; + private BinderFactory binderFactory; @Autowired - @Bindings(TestProcessor.class) private Processor testProcessor; @SuppressWarnings("unchecked") @Test public void testSourceOutputChannelBound() { - verify(this.binder).bindConsumer(eq("testtock.0"), anyString(), + final Binder binder = binderFactory.getBinder(null); + verify(binder).bindConsumer(eq("testtock.0"), anyString(), eq(this.testProcessor.input()), Mockito.any()); - verify(this.binder).bindProducer(eq("testtock.1"), eq(this.testProcessor.output()), + verify(binder).bindProducer(eq("testtock.1"), eq(this.testProcessor.output()), Mockito.any()); } diff --git a/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/ProcessorBindingTestsWithDefaults.java b/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/ProcessorBindingsWithDefaultsTests.java similarity index 80% rename from spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/ProcessorBindingTestsWithDefaults.java rename to spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/ProcessorBindingsWithDefaultsTests.java index 9e12bfb6b..b15ce4380 100644 --- a/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/ProcessorBindingTestsWithDefaults.java +++ b/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/ProcessorBindingsWithDefaultsTests.java @@ -23,7 +23,6 @@ import org.mockito.Mockito; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.cloud.stream.annotation.Bindings; import org.springframework.cloud.stream.annotation.EnableBinding; import org.springframework.cloud.stream.messaging.Processor; import org.springframework.cloud.stream.utils.MockBinderRegistryConfiguration; @@ -38,25 +37,25 @@ import static org.mockito.Mockito.verifyNoMoreInteractions; * @author Marius Bogoevici */ @RunWith(SpringJUnit4ClassRunner.class) -@SpringBootTest(classes = ProcessorBindingTestsWithDefaults.TestProcessor.class) -public class ProcessorBindingTestsWithDefaults { +@SpringBootTest(classes = ProcessorBindingsWithDefaultsTests.TestProcessor.class) +public class ProcessorBindingsWithDefaultsTests { @SuppressWarnings("rawtypes") @Autowired - private Binder binder; + private BinderFactory binderFactory; @Autowired - @Bindings(TestProcessor.class) private Processor processor; @SuppressWarnings("unchecked") @Test public void testSourceOutputChannelBound() { - Mockito.verify(this.binder).bindConsumer(eq("input"), anyString(), eq(this.processor.input()), + Binder binder = this.binderFactory.getBinder(null); + Mockito.verify(binder).bindConsumer(eq("input"), anyString(), eq(this.processor.input()), Mockito.any()); - Mockito.verify(this.binder).bindProducer(eq("output"), eq(this.processor.output()), + Mockito.verify(binder).bindProducer(eq("output"), eq(this.processor.output()), Mockito.any()); - verifyNoMoreInteractions(this.binder); + verifyNoMoreInteractions(binder); } @EnableBinding(Processor.class) diff --git a/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/SinkBindingTestsWithBindingTargets.java b/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/SinkBindingWithDefaultTargetsTests.java similarity index 85% rename from spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/SinkBindingTestsWithBindingTargets.java rename to spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/SinkBindingWithDefaultTargetsTests.java index da13174c8..dc7986792 100644 --- a/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/SinkBindingTestsWithBindingTargets.java +++ b/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/SinkBindingWithDefaultTargetsTests.java @@ -23,7 +23,6 @@ import org.mockito.Mockito; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.cloud.stream.annotation.Bindings; import org.springframework.cloud.stream.annotation.EnableBinding; import org.springframework.cloud.stream.messaging.Sink; import org.springframework.cloud.stream.utils.MockBinderRegistryConfiguration; @@ -40,23 +39,23 @@ import static org.mockito.Mockito.verifyNoMoreInteractions; * @author Marius Bogoevici */ @RunWith(SpringJUnit4ClassRunner.class) -@SpringBootTest(classes = SinkBindingTestsWithBindingTargets.TestSink.class) -public class SinkBindingTestsWithBindingTargets { +@SpringBootTest(classes = SinkBindingWithDefaultTargetsTests.TestSink.class) +public class SinkBindingWithDefaultTargetsTests { @SuppressWarnings("rawtypes") @Autowired - private Binder binder; + private BinderFactory binderFactory; @Autowired - @Bindings(TestSink.class) private Sink testSink; @SuppressWarnings("unchecked") @Test public void testSourceOutputChannelBound() { - verify(this.binder).bindConsumer(eq("testtock"), anyString(), eq(this.testSink.input()), + Binder binder = binderFactory.getBinder(null); + verify(binder).bindConsumer(eq("testtock"), anyString(), eq(this.testSink.input()), Mockito.any()); - verifyNoMoreInteractions(this.binder); + verifyNoMoreInteractions(binder); } @EnableBinding(Sink.class) diff --git a/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/SinkBindingTestsWithDefaults.java b/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/SinkBindingWithDefaultsTests.java similarity index 84% rename from spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/SinkBindingTestsWithDefaults.java rename to spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/SinkBindingWithDefaultsTests.java index 4b43d1ad8..5e6984ece 100644 --- a/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/SinkBindingTestsWithDefaults.java +++ b/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/SinkBindingWithDefaultsTests.java @@ -23,7 +23,6 @@ import org.mockito.Mockito; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.cloud.stream.annotation.Bindings; import org.springframework.cloud.stream.annotation.EnableBinding; import org.springframework.cloud.stream.messaging.Sink; import org.springframework.cloud.stream.utils.MockBinderRegistryConfiguration; @@ -39,23 +38,23 @@ import static org.mockito.Mockito.verifyNoMoreInteractions; * @author Marius Bogoevici */ @RunWith(SpringJUnit4ClassRunner.class) -@SpringBootTest(classes = SinkBindingTestsWithDefaults.TestSink.class) -public class SinkBindingTestsWithDefaults { +@SpringBootTest(classes = SinkBindingWithDefaultsTests.TestSink.class) +public class SinkBindingWithDefaultsTests { @SuppressWarnings("rawtypes") @Autowired - private Binder binder; + private BinderFactory binderFactory; @Autowired - @Bindings(TestSink.class) private Sink testSink; @SuppressWarnings("unchecked") @Test public void testSourceOutputChannelBound() { - verify(this.binder).bindConsumer(eq("input"), anyString(), eq(this.testSink.input()), + Binder binder = binderFactory.getBinder(null); + verify(binder).bindConsumer(eq("input"), anyString(), eq(this.testSink.input()), Mockito.any()); - verifyNoMoreInteractions(this.binder); + verifyNoMoreInteractions(binder); } @EnableBinding(Sink.class) diff --git a/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/SourceBindingTestsWithBindingTargets.java b/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/SourceBindingWithBindingTargetsTests.java similarity index 87% rename from spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/SourceBindingTestsWithBindingTargets.java rename to spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/SourceBindingWithBindingTargetsTests.java index e7757a2c6..c14fd0ca8 100644 --- a/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/SourceBindingTestsWithBindingTargets.java +++ b/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/SourceBindingWithBindingTargetsTests.java @@ -24,7 +24,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.cloud.stream.annotation.Bindings; import org.springframework.cloud.stream.annotation.EnableBinding; import org.springframework.cloud.stream.messaging.Source; import org.springframework.cloud.stream.utils.MockBinderRegistryConfiguration; @@ -43,15 +42,14 @@ import static org.mockito.Mockito.verifyNoMoreInteractions; * @author Ilayaperumal Gopinathan */ @RunWith(SpringJUnit4ClassRunner.class) -@SpringBootTest(classes = SourceBindingTestsWithBindingTargets.TestSource.class) -public class SourceBindingTestsWithBindingTargets { +@SpringBootTest(classes = SourceBindingWithBindingTargetsTests.TestSource.class) +public class SourceBindingWithBindingTargetsTests { @SuppressWarnings("rawtypes") @Autowired - private Binder binder; + private BinderFactory binderFactory; @Autowired - @Bindings(TestSource.class) private Source testSource; @Autowired @@ -61,9 +59,10 @@ public class SourceBindingTestsWithBindingTargets { @SuppressWarnings("unchecked") @Test public void testSourceOutputChannelBound() { - verify(this.binder).bindProducer(eq("testtock"), eq(this.testSource.output()), + Binder binder = binderFactory.getBinder(null); + verify(binder).bindProducer(eq("testtock"), eq(this.testSource.output()), Mockito.any()); - verifyNoMoreInteractions(this.binder); + verifyNoMoreInteractions(binder); } @EnableBinding(Source.class) diff --git a/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/SourceBindingTestsWithDefaults.java b/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/SourceBindingWithDefaultsTests.java similarity index 82% rename from spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/SourceBindingTestsWithDefaults.java rename to spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/SourceBindingWithDefaultsTests.java index 6ab2d2bb5..b04ac6930 100644 --- a/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/SourceBindingTestsWithDefaults.java +++ b/spring-cloud-stream/src/test/java/org/springframework/cloud/stream/binder/SourceBindingWithDefaultsTests.java @@ -23,7 +23,6 @@ import org.mockito.Mockito; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.cloud.stream.annotation.Bindings; import org.springframework.cloud.stream.annotation.EnableBinding; import org.springframework.cloud.stream.messaging.Source; import org.springframework.cloud.stream.utils.MockBinderRegistryConfiguration; @@ -38,22 +37,22 @@ import static org.mockito.Mockito.verifyNoMoreInteractions; * @author Marius Bogoevici */ @RunWith(SpringJUnit4ClassRunner.class) -@SpringBootTest(classes = SourceBindingTestsWithDefaults.TestSource.class) -public class SourceBindingTestsWithDefaults { +@SpringBootTest(classes = SourceBindingWithDefaultsTests.TestSource.class) +public class SourceBindingWithDefaultsTests { @SuppressWarnings("rawtypes") @Autowired - private Binder binder; + private BinderFactory binderFactory; @Autowired - @Bindings(TestSource.class) private Source testSource; @SuppressWarnings("unchecked") @Test public void testSourceOutputChannelBound() { - verify(this.binder).bindProducer(eq("output"), eq(this.testSource.output()), Mockito.any()); - verifyNoMoreInteractions(this.binder); + Binder binder = binderFactory.getBinder(null); + verify(binder).bindProducer(eq("output"), eq(this.testSource.output()), Mockito.any()); + verifyNoMoreInteractions(binder); } @EnableBinding(Source.class)