From a68321e8d5f0b607caf493cd3ded87392e972e12 Mon Sep 17 00:00:00 2001 From: Marius Bogoevici Date: Fri, 10 Jul 2015 14:18:15 -0400 Subject: [PATCH] Identify bindings with annotations, not names Refactor support for channel beans * create utility methods for registering input/output channel beans * use utility methods within tests Remove source-xml and rely on the @Input/@Output model entirely --- .../ChannelBindingAdapterConfiguration.java | 21 +++++-- .../streams/config/ModulePostProcessor.java | 11 +--- .../utils/BeanDefinitionRegistryUtils.java | 49 +++++++++++++++ ...annelBindingAdapterConfigurationTests.java | 13 ++-- ...annelBindingAdapterConfigurationTests.java | 20 +++--- spring-xd-samples/pom.xml | 1 - spring-xd-samples/source-xml/pom.xml | 60 ------------------ .../src/main/java/demo/ModuleApplication.java | 19 ------ .../java/demo/TimeSourceOptionsMetadata.java | 61 ------------------- .../src/main/resources/application.yml | 1 - .../src/main/resources/bootstrap.yml | 6 -- .../main/resources/config/ticker.properties | 1 - .../src/main/resources/config/ticker.xml | 22 ------- .../java/demo/ModuleApplicationTests.java | 20 ------ 14 files changed, 86 insertions(+), 219 deletions(-) create mode 100644 spring-cloud-streams/src/main/java/org/springframework/cloud/streams/utils/BeanDefinitionRegistryUtils.java delete mode 100644 spring-xd-samples/source-xml/pom.xml delete mode 100644 spring-xd-samples/source-xml/src/main/java/demo/ModuleApplication.java delete mode 100644 spring-xd-samples/source-xml/src/main/java/demo/TimeSourceOptionsMetadata.java delete mode 100644 spring-xd-samples/source-xml/src/main/resources/application.yml delete mode 100644 spring-xd-samples/source-xml/src/main/resources/bootstrap.yml delete mode 100644 spring-xd-samples/source-xml/src/main/resources/config/ticker.properties delete mode 100644 spring-xd-samples/source-xml/src/main/resources/config/ticker.xml delete mode 100644 spring-xd-samples/source-xml/src/test/java/demo/ModuleApplicationTests.java diff --git a/spring-cloud-streams/src/main/java/org/springframework/cloud/streams/config/ChannelBindingAdapterConfiguration.java b/spring-cloud-streams/src/main/java/org/springframework/cloud/streams/config/ChannelBindingAdapterConfiguration.java index ee39f67cb..70d0d2234 100644 --- a/spring-cloud-streams/src/main/java/org/springframework/cloud/streams/config/ChannelBindingAdapterConfiguration.java +++ b/spring-cloud-streams/src/main/java/org/springframework/cloud/streams/config/ChannelBindingAdapterConfiguration.java @@ -31,11 +31,16 @@ import org.springframework.aop.target.LazyInitTargetSource; import org.springframework.beans.factory.BeanFactoryUtils; import org.springframework.beans.factory.ListableBeanFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.config.BeanDefinition; +import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; +import org.springframework.beans.factory.support.AbstractBeanDefinition; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.cloud.streams.adapter.ChannelBindingAdapter; import org.springframework.cloud.streams.adapter.ChannelLocator; import org.springframework.cloud.streams.adapter.InputChannelBinding; import org.springframework.cloud.streams.adapter.OutputChannelBinding; +import org.springframework.cloud.streams.annotation.Input; +import org.springframework.cloud.streams.annotation.Output; import org.springframework.cloud.streams.endpoint.ChannelsEndpoint; import org.springframework.context.ApplicationContext; import org.springframework.context.annotation.Bean; @@ -62,7 +67,7 @@ public class ChannelBindingAdapterConfiguration { private ChannelBindingProperties module; @Autowired - private ListableBeanFactory beanFactory; + private ConfigurableListableBeanFactory beanFactory; private ChannelLocator channelLocator; @@ -92,10 +97,13 @@ public class ChannelBindingAdapterConfiguration { } protected Collection getOutputChannels() { - Set channels = new LinkedHashSet(); + Set channels = new LinkedHashSet<>(); String[] names = this.beanFactory.getBeanNamesForType(MessageChannel.class); for (String name : names) { - if (name.startsWith("output")) { + BeanDefinition beanDefinition = this.beanFactory.getBeanDefinition(name); + // for now, just assume that the beans are at least AbstractBeanDefinition + if (beanDefinition instanceof AbstractBeanDefinition + && ((AbstractBeanDefinition)beanDefinition).getQualifier(Output.class.getName()) != null) { channels.add(new OutputChannelBinding(name)); } } @@ -103,10 +111,13 @@ public class ChannelBindingAdapterConfiguration { } protected Collection getInputChannels() { - Set channels = new LinkedHashSet(); + Set channels = new LinkedHashSet<>(); String[] names = this.beanFactory.getBeanNamesForType(MessageChannel.class); for (String name : names) { - if (name.startsWith("input")) { + BeanDefinition beanDefinition = this.beanFactory.getBeanDefinition(name); + // for now, just assume that the beans are at least AbstractBeanDefinition + if (beanDefinition instanceof AbstractBeanDefinition + && ((AbstractBeanDefinition)beanDefinition).getQualifier(Input.class.getName()) != null) { channels.add(new InputChannelBinding(name)); } } diff --git a/spring-cloud-streams/src/main/java/org/springframework/cloud/streams/config/ModulePostProcessor.java b/spring-cloud-streams/src/main/java/org/springframework/cloud/streams/config/ModulePostProcessor.java index 19a519f0d..b6fba4e32 100644 --- a/spring-cloud-streams/src/main/java/org/springframework/cloud/streams/config/ModulePostProcessor.java +++ b/spring-cloud-streams/src/main/java/org/springframework/cloud/streams/config/ModulePostProcessor.java @@ -22,13 +22,12 @@ import org.springframework.beans.BeansException; import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.beans.factory.config.BeanPostProcessor; import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; -import org.springframework.beans.factory.support.AutowireCandidateQualifier; import org.springframework.beans.factory.support.BeanDefinitionRegistry; import org.springframework.beans.factory.support.BeanDefinitionRegistryPostProcessor; -import org.springframework.beans.factory.support.RootBeanDefinition; import org.springframework.cloud.streams.annotation.EnableModule; import org.springframework.cloud.streams.annotation.Input; import org.springframework.cloud.streams.annotation.Output; +import org.springframework.cloud.streams.utils.BeanDefinitionRegistryUtils; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; import org.springframework.core.annotation.AnnotationUtils; @@ -59,14 +58,10 @@ public class ModulePostProcessor implements BeanDefinitionRegistryPostProcessor, @Override public void doWith(Field field) throws IllegalArgumentException, IllegalAccessException { if (field.isAnnotationPresent(Input.class)) { - RootBeanDefinition rootBeanDefinition = new RootBeanDefinition(DirectChannelFactoryBean.class); - rootBeanDefinition.addQualifier(new AutowireCandidateQualifier(Input.class)); - registry.registerBeanDefinition(field.getName(), rootBeanDefinition); + BeanDefinitionRegistryUtils.registerInputChannelBeanDefinition(field.getName(), registry); } if (field.isAnnotationPresent(Output.class)) { - RootBeanDefinition rootBeanDefinition = new RootBeanDefinition(DirectChannelFactoryBean.class); - rootBeanDefinition.addQualifier(new AutowireCandidateQualifier(Output.class)); - registry.registerBeanDefinition(field.getName(), rootBeanDefinition); + BeanDefinitionRegistryUtils.registerOutputChannelBeanDefinition(field.getName(), registry); } } }); diff --git a/spring-cloud-streams/src/main/java/org/springframework/cloud/streams/utils/BeanDefinitionRegistryUtils.java b/spring-cloud-streams/src/main/java/org/springframework/cloud/streams/utils/BeanDefinitionRegistryUtils.java new file mode 100644 index 000000000..c5d41dc0b --- /dev/null +++ b/spring-cloud-streams/src/main/java/org/springframework/cloud/streams/utils/BeanDefinitionRegistryUtils.java @@ -0,0 +1,49 @@ +/* + * Copyright 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.streams.utils; + +import java.lang.annotation.Annotation; + +import org.springframework.beans.factory.support.AutowireCandidateQualifier; +import org.springframework.beans.factory.support.BeanDefinitionRegistry; +import org.springframework.beans.factory.support.RootBeanDefinition; +import org.springframework.cloud.streams.annotation.Input; +import org.springframework.cloud.streams.annotation.Output; +import org.springframework.cloud.streams.config.DirectChannelFactoryBean; + +/** + * Utility class for registering bean definitions. + * + * @author Marius Bogoevici + */ +public abstract class BeanDefinitionRegistryUtils { + + public static void registerInputChannelBeanDefinition(String name, BeanDefinitionRegistry registry) { + registerChannelBeanDefinition(Input.class, name, registry); + } + + public static void registerOutputChannelBeanDefinition(String name, BeanDefinitionRegistry registry) { + registerChannelBeanDefinition(Output.class, name, registry); + } + + private static void registerChannelBeanDefinition(Class qualifier, String name, BeanDefinitionRegistry registry) { + RootBeanDefinition rootBeanDefinition = new RootBeanDefinition(DirectChannelFactoryBean.class); + rootBeanDefinition.addQualifier(new AutowireCandidateQualifier(qualifier)); + registry.registerBeanDefinition(name, rootBeanDefinition); + } + +} diff --git a/spring-cloud-streams/src/test/java/org/springframework/cloud/streams/config/ChannelBindingAdapterConfigurationTests.java b/spring-cloud-streams/src/test/java/org/springframework/cloud/streams/config/ChannelBindingAdapterConfigurationTests.java index 98ccf6972..36f1fb077 100644 --- a/spring-cloud-streams/src/test/java/org/springframework/cloud/streams/config/ChannelBindingAdapterConfigurationTests.java +++ b/spring-cloud-streams/src/test/java/org/springframework/cloud/streams/config/ChannelBindingAdapterConfigurationTests.java @@ -33,6 +33,7 @@ import org.springframework.cloud.streams.adapter.ChannelBinding; import org.springframework.cloud.streams.adapter.ChannelBindingAdapter; import org.springframework.cloud.streams.adapter.OutputChannelBinding; import org.springframework.cloud.streams.config.ChannelBindingAdapterConfigurationTests.Empty; +import org.springframework.cloud.streams.utils.BeanDefinitionRegistryUtils; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Import; @@ -68,7 +69,7 @@ public class ChannelBindingAdapterConfigurationTests { @Test public void oneOutput() throws Exception { - this.context.registerSingleton("output", new DirectChannel()); + BeanDefinitionRegistryUtils.registerOutputChannelBeanDefinition("output", context); refresh(); Collection channels = this.adapter.getChannelsMetadata().getOutputChannels(); assertEquals(1, channels.size()); @@ -87,7 +88,7 @@ public class ChannelBindingAdapterConfigurationTests { @Test public void oneOutputTopic() throws Exception { - this.context.registerSingleton("output.topic:", new DirectChannel()); + BeanDefinitionRegistryUtils.registerOutputChannelBeanDefinition("output.topic:", context); refresh(); Collection channels = this.adapter.getChannelsMetadata().getOutputChannels(); assertEquals(1, channels.size()); @@ -97,8 +98,8 @@ public class ChannelBindingAdapterConfigurationTests { @Test public void twoOutputsWithQueue() throws Exception { - this.context.registerSingleton("output", new DirectChannel()); - this.context.registerSingleton("output.queue:foo", new DirectChannel()); + BeanDefinitionRegistryUtils.registerOutputChannelBeanDefinition("output", context); + BeanDefinitionRegistryUtils.registerOutputChannelBeanDefinition("output.queue:foo", context); refresh(); Collection channels = this.adapter.getChannelsMetadata().getOutputChannels(); List names = getChannelNames(channels); @@ -118,7 +119,7 @@ public class ChannelBindingAdapterConfigurationTests { @Test public void overrideNaturalOutputChannelName() throws Exception { this.module.setOutputChannelName("bar"); - this.context.registerSingleton("output.queue:foo", new DirectChannel()); + BeanDefinitionRegistryUtils.registerOutputChannelBeanDefinition("output.queue:foo", context); refresh(); Collection channels = this.adapter.getChannelsMetadata().getOutputChannels(); assertEquals(1, channels.size()); @@ -130,7 +131,7 @@ public class ChannelBindingAdapterConfigurationTests { @Test public void overrideNaturalOutputChannelNamedQueueWithTopic() throws Exception { this.module.setOutputChannelName("queue:bar"); - this.context.registerSingleton("output.topic:foo", new DirectChannel()); + BeanDefinitionRegistryUtils.registerOutputChannelBeanDefinition("output.topic:foo", context); refresh(); Collection channels = this.adapter.getChannelsMetadata().getOutputChannels(); assertEquals(1, channels.size()); diff --git a/spring-xd-runner/src/test/java/org/springframework/cloud/streams/xd/ChannelBindingAdapterConfigurationTests.java b/spring-xd-runner/src/test/java/org/springframework/cloud/streams/xd/ChannelBindingAdapterConfigurationTests.java index f3de1e6e2..afd843343 100644 --- a/spring-xd-runner/src/test/java/org/springframework/cloud/streams/xd/ChannelBindingAdapterConfigurationTests.java +++ b/spring-xd-runner/src/test/java/org/springframework/cloud/streams/xd/ChannelBindingAdapterConfigurationTests.java @@ -35,6 +35,7 @@ import org.springframework.cloud.streams.adapter.ChannelBindingAdapter; import org.springframework.cloud.streams.adapter.InputChannelBinding; import org.springframework.cloud.streams.adapter.OutputChannelBinding; import org.springframework.cloud.streams.config.ChannelBindingAdapterConfiguration; +import org.springframework.cloud.streams.utils.BeanDefinitionRegistryUtils; import org.springframework.cloud.streams.xd.ChannelBindingAdapterConfigurationTests.Empty; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -71,6 +72,7 @@ public class ChannelBindingAdapterConfigurationTests { @Test public void oneOutput() throws Exception { + BeanDefinitionRegistryUtils.registerOutputChannelBeanDefinition("output", context); this.context.registerSingleton("output", new DirectChannel()); refresh(); Collection channels = this.adapter.getChannelsMetadata() @@ -83,7 +85,7 @@ public class ChannelBindingAdapterConfigurationTests { @Test public void oneInput() throws Exception { - this.context.registerSingleton("input", new DirectChannel()); + BeanDefinitionRegistryUtils.registerInputChannelBeanDefinition("input",context); refresh(); Collection channels = this.adapter.getChannelsMetadata() .getInputChannels(); @@ -104,7 +106,7 @@ public class ChannelBindingAdapterConfigurationTests { @Test public void oneOutputTopic() throws Exception { - this.context.registerSingleton("output.topic:", new DirectChannel()); + BeanDefinitionRegistryUtils.registerOutputChannelBeanDefinition("output.topic:", this.context); refresh(); Collection channels = this.adapter.getChannelsMetadata() .getOutputChannels(); @@ -119,7 +121,7 @@ public class ChannelBindingAdapterConfigurationTests { this.module.setGroup("mine"); this.module.setName("foo"); this.module.setIndex(2); - this.context.registerSingleton("output.topic:", new DirectChannel()); + BeanDefinitionRegistryUtils.registerOutputChannelBeanDefinition("output.topic:", this.context); refresh(); Collection channels = this.adapter.getChannelsMetadata() .getOutputChannels(); @@ -131,7 +133,7 @@ public class ChannelBindingAdapterConfigurationTests { @Test public void oneInputTopic() throws Exception { - this.context.registerSingleton("input.topic:", new DirectChannel()); + BeanDefinitionRegistryUtils.registerInputChannelBeanDefinition("input.topic:", this.context); refresh(); Collection channels = this.adapter.getChannelsMetadata() .getInputChannels(); @@ -143,7 +145,7 @@ public class ChannelBindingAdapterConfigurationTests { public void oneInputOverrideName() throws Exception { this.module.setGroup("mine"); this.module.setIndex(2); - this.context.registerSingleton("input", new DirectChannel()); + BeanDefinitionRegistryUtils.registerInputChannelBeanDefinition("input", this.context); refresh(); Collection channels = this.adapter.getChannelsMetadata() .getInputChannels(); @@ -153,8 +155,8 @@ public class ChannelBindingAdapterConfigurationTests { @Test public void twoOutputsWithQueue() throws Exception { - this.context.registerSingleton("output", new DirectChannel()); - this.context.registerSingleton("output.queue:foo", new DirectChannel()); + BeanDefinitionRegistryUtils.registerOutputChannelBeanDefinition("output", this.context); + BeanDefinitionRegistryUtils.registerOutputChannelBeanDefinition("output.queue:foo", this.context); refresh(); Collection channels = this.adapter.getChannelsMetadata() .getOutputChannels(); @@ -175,7 +177,7 @@ public class ChannelBindingAdapterConfigurationTests { @Test public void overrideNaturalOutputChannelName() throws Exception { this.module.setOutputChannelName("bar"); - this.context.registerSingleton("output.queue:foo", new DirectChannel()); + BeanDefinitionRegistryUtils.registerOutputChannelBeanDefinition("output.queue:foo", this.context); refresh(); Collection channels = this.adapter.getChannelsMetadata() .getOutputChannels(); @@ -189,7 +191,7 @@ public class ChannelBindingAdapterConfigurationTests { @Test public void overrideNaturalOutputChannelNamedQueueWithTopic() throws Exception { this.module.setOutputChannelName("queue:bar"); - this.context.registerSingleton("output.topic:foo", new DirectChannel()); + BeanDefinitionRegistryUtils.registerOutputChannelBeanDefinition("output.topic:foo", this.context); refresh(); Collection channels = this.adapter.getChannelsMetadata() .getOutputChannels(); diff --git a/spring-xd-samples/pom.xml b/spring-xd-samples/pom.xml index c0a1b680c..6720d8a84 100644 --- a/spring-xd-samples/pom.xml +++ b/spring-xd-samples/pom.xml @@ -19,7 +19,6 @@ source sink tap - source-xml diff --git a/spring-xd-samples/source-xml/pom.xml b/spring-xd-samples/source-xml/pom.xml deleted file mode 100644 index 3ad9e1364..000000000 --- a/spring-xd-samples/source-xml/pom.xml +++ /dev/null @@ -1,60 +0,0 @@ - - - 4.0.0 - - org.springframework.cloud - spring-xd-module-runner-sample-source-xml - 1.0.0.BUILD-SNAPSHOT - jar - - spring-xd-module-runner-sample-source-xml - Demo project for Spring XD module - - - org.springframework.cloud - spring-xd-samples - 1.0.0.BUILD-SNAPSHOT - - - - UTF-8 - demo.ModuleApplication - 1.8 - - - - - org.springframework.cloud - spring-xd-runner - - - org.springframework.xd - spring-xd-messagebus-redis - - - org.springframework.boot - spring-boot-configuration-processor - true - - - org.springframework.boot - spring-boot-starter-redis - - - org.springframework.boot - spring-boot-starter-test - test - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - diff --git a/spring-xd-samples/source-xml/src/main/java/demo/ModuleApplication.java b/spring-xd-samples/source-xml/src/main/java/demo/ModuleApplication.java deleted file mode 100644 index 2a93f499d..000000000 --- a/spring-xd-samples/source-xml/src/main/java/demo/ModuleApplication.java +++ /dev/null @@ -1,19 +0,0 @@ -package demo; - -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.boot.builder.SpringApplicationBuilder; -import org.springframework.cloud.streams.annotation.EnableModule; -import org.springframework.context.annotation.ImportResource; -import org.springframework.context.annotation.PropertySource; - -@SpringBootApplication -@EnableModule -@ImportResource("classpath:/config/ticker.xml") -@PropertySource("classpath:/config/ticker.properties") -public class ModuleApplication { - - public static void main(String[] args) throws InterruptedException { - new SpringApplicationBuilder().sources(ModuleApplication.class).run(args); - } - -} diff --git a/spring-xd-samples/source-xml/src/main/java/demo/TimeSourceOptionsMetadata.java b/spring-xd-samples/source-xml/src/main/java/demo/TimeSourceOptionsMetadata.java deleted file mode 100644 index 93426070e..000000000 --- a/spring-xd-samples/source-xml/src/main/java/demo/TimeSourceOptionsMetadata.java +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Copyright 2013-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 demo; - -import org.springframework.xd.module.options.mixins.MaxMessagesDefaultOneMixin; -import org.springframework.xd.module.options.mixins.PeriodicTriggerMixin; -import org.springframework.xd.module.options.spi.Mixin; -import org.springframework.xd.module.options.spi.ModuleOption; -import org.springframework.xd.module.options.validation.DateFormat; - -/** - * Describes options to the {@code time} source module. - * - * @author Eric Bottard - * @author Gary Russell - */ -@Mixin({ PeriodicTriggerMixin.class, MaxMessagesDefaultOneMixin.class }) -public class TimeSourceOptionsMetadata { - - private String format = "yyyy-MM-dd HH:mm:ss"; - - private int fixedDelay = 1; - - - @DateFormat - public String getFormat() { - return format; - } - - @ModuleOption("how to render the current time, using SimpleDateFormat") - public void setFormat(String format) { - this.format = format; - } - - - public int getFixedDelay() { - return fixedDelay; - } - - - @ModuleOption("time delay between messages, expressed in TimeUnits (seconds by default)") - public void setFixedDelay(int fixedDelay) { - this.fixedDelay = fixedDelay; - } - - -} diff --git a/spring-xd-samples/source-xml/src/main/resources/application.yml b/spring-xd-samples/source-xml/src/main/resources/application.yml deleted file mode 100644 index 9e1113c80..000000000 --- a/spring-xd-samples/source-xml/src/main/resources/application.yml +++ /dev/null @@ -1 +0,0 @@ -fixedDelay: 5 diff --git a/spring-xd-samples/source-xml/src/main/resources/bootstrap.yml b/spring-xd-samples/source-xml/src/main/resources/bootstrap.yml deleted file mode 100644 index 6c327a9c3..000000000 --- a/spring-xd-samples/source-xml/src/main/resources/bootstrap.yml +++ /dev/null @@ -1,6 +0,0 @@ ---- -spring: - cloud: - channels: - group: testtock - name: ticker diff --git a/spring-xd-samples/source-xml/src/main/resources/config/ticker.properties b/spring-xd-samples/source-xml/src/main/resources/config/ticker.properties deleted file mode 100644 index f648a982d..000000000 --- a/spring-xd-samples/source-xml/src/main/resources/config/ticker.properties +++ /dev/null @@ -1 +0,0 @@ -options_class = demo.TimeSourceOptionsMetadata \ No newline at end of file diff --git a/spring-xd-samples/source-xml/src/main/resources/config/ticker.xml b/spring-xd-samples/source-xml/src/main/resources/config/ticker.xml deleted file mode 100644 index 7b59ada64..000000000 --- a/spring-xd-samples/source-xml/src/main/resources/config/ticker.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/spring-xd-samples/source-xml/src/test/java/demo/ModuleApplicationTests.java b/spring-xd-samples/source-xml/src/test/java/demo/ModuleApplicationTests.java deleted file mode 100644 index 60627489e..000000000 --- a/spring-xd-samples/source-xml/src/test/java/demo/ModuleApplicationTests.java +++ /dev/null @@ -1,20 +0,0 @@ -package demo; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.springframework.test.annotation.DirtiesContext; -import org.springframework.test.context.web.WebAppConfiguration; -import org.springframework.boot.test.SpringApplicationConfiguration; -import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; - -@RunWith(SpringJUnit4ClassRunner.class) -@SpringApplicationConfiguration(classes = ModuleApplication.class) -@WebAppConfiguration -@DirtiesContext -public class ModuleApplicationTests { - - @Test - public void contextLoads() { - } - -}