From 369ea90b2461e56e3be7325d5859c1dd3b68ce13 Mon Sep 17 00:00:00 2001 From: Mark Fisher Date: Mon, 28 Apr 2008 23:59:43 +0000 Subject: [PATCH] Refactored ChannelParser into a hierarchy of parsers. Added namespace support for "rendezvous-channel" and "direct-channel" (a.k.a. SyncrhonousChannel at this point). --- .../config/AbstractChannelParser.java} | 55 ++++++++--------- .../channel/config/DirectChannelParser.java | 46 ++++++++++++++ .../channel/config/PriorityChannelParser.java | 47 ++++++++++++++ .../channel/config/QueueChannelParser.java | 47 ++++++++++++++ .../config/RendezvousChannelParser.java | 42 +++++++++++++ .../config/IntegrationNamespaceHandler.java | 10 ++- .../config/spring-integration-core-1.0.xsd | 43 +++++++++++-- .../config/ChannelParserTests.java | 3 +- .../config/DirectChannelParserTests.java | 61 +++++++++++++++++++ .../config/RendezvousChannelParserTests.java | 40 ++++++++++++ .../channel/config/TestSourceBean.java | 35 +++++++++++ .../config/channelInterceptorParserTests.xml | 0 .../config/channelParserTests.xml | 0 .../{ => channel}/config/channelWithoutId.xml | 0 .../config/directChannelParserTests.xml | 20 ++++++ .../config/priorityChannelParserTests.xml | 4 +- .../config/rendezvousChannelParserTests.xml | 12 ++++ .../config/aggregatorParserTests.xml | 1 - .../config/duplicateCompletionStrategy.xml | 3 - 19 files changed, 425 insertions(+), 44 deletions(-) rename spring-integration-core/src/main/java/org/springframework/integration/{config/ChannelParser.java => channel/config/AbstractChannelParser.java} (71%) create mode 100644 spring-integration-core/src/main/java/org/springframework/integration/channel/config/DirectChannelParser.java create mode 100644 spring-integration-core/src/main/java/org/springframework/integration/channel/config/PriorityChannelParser.java create mode 100644 spring-integration-core/src/main/java/org/springframework/integration/channel/config/QueueChannelParser.java create mode 100644 spring-integration-core/src/main/java/org/springframework/integration/channel/config/RendezvousChannelParser.java rename spring-integration-core/src/test/java/org/springframework/integration/{ => channel}/config/ChannelParserTests.java (99%) create mode 100644 spring-integration-core/src/test/java/org/springframework/integration/channel/config/DirectChannelParserTests.java create mode 100644 spring-integration-core/src/test/java/org/springframework/integration/channel/config/RendezvousChannelParserTests.java create mode 100644 spring-integration-core/src/test/java/org/springframework/integration/channel/config/TestSourceBean.java rename spring-integration-core/src/test/java/org/springframework/integration/{ => channel}/config/channelInterceptorParserTests.xml (100%) rename spring-integration-core/src/test/java/org/springframework/integration/{ => channel}/config/channelParserTests.xml (100%) rename spring-integration-core/src/test/java/org/springframework/integration/{ => channel}/config/channelWithoutId.xml (100%) create mode 100644 spring-integration-core/src/test/java/org/springframework/integration/channel/config/directChannelParserTests.xml rename spring-integration-core/src/test/java/org/springframework/integration/{ => channel}/config/priorityChannelParserTests.xml (90%) create mode 100644 spring-integration-core/src/test/java/org/springframework/integration/channel/config/rendezvousChannelParserTests.xml diff --git a/spring-integration-core/src/main/java/org/springframework/integration/config/ChannelParser.java b/spring-integration-core/src/main/java/org/springframework/integration/channel/config/AbstractChannelParser.java similarity index 71% rename from spring-integration-core/src/main/java/org/springframework/integration/config/ChannelParser.java rename to spring-integration-core/src/main/java/org/springframework/integration/channel/config/AbstractChannelParser.java index 2138dd36ed..7b11ef38eb 100644 --- a/spring-integration-core/src/main/java/org/springframework/integration/config/ChannelParser.java +++ b/spring-integration-core/src/main/java/org/springframework/integration/channel/config/AbstractChannelParser.java @@ -14,36 +14,30 @@ * limitations under the License. */ -package org.springframework.integration.config; +package org.springframework.integration.channel.config; import org.w3c.dom.Element; import org.w3c.dom.Node; import org.w3c.dom.NodeList; -import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.beans.factory.config.RuntimeBeanReference; import org.springframework.beans.factory.parsing.BeanComponentDefinition; +import org.springframework.beans.factory.support.BeanDefinitionBuilder; import org.springframework.beans.factory.support.ManagedList; import org.springframework.beans.factory.support.RootBeanDefinition; -import org.springframework.beans.factory.xml.BeanDefinitionParser; +import org.springframework.beans.factory.xml.AbstractSingleBeanDefinitionParser; import org.springframework.beans.factory.xml.ParserContext; import org.springframework.integration.channel.DispatcherPolicy; -import org.springframework.integration.channel.PriorityChannel; -import org.springframework.integration.channel.QueueChannel; import org.springframework.integration.channel.interceptor.MessageSelectingInterceptor; import org.springframework.integration.message.selector.PayloadTypeSelector; import org.springframework.util.StringUtils; /** - * Parser for the channel element of the integration namespace. + * Base class for channel parsers. * * @author Mark Fisher */ -public class ChannelParser implements BeanDefinitionParser { - - private static final String ID_ATTRIBUTE = "id"; - - private static final String CAPACITY_ATTRIBUTE = "capacity"; +public abstract class AbstractChannelParser extends AbstractSingleBeanDefinitionParser { private static final String PUBLISH_SUBSCRIBE_ATTRIBUTE = "publish-subscribe"; @@ -55,14 +49,25 @@ public class ChannelParser implements BeanDefinitionParser { private static final String INTERCEPTORS_PROPERTY = "interceptors"; - private static final String COMPARATOR_REF_ATTRIBUTE = "comparator-ref"; + @Override + protected boolean shouldGenerateId() { + return false; + } - public BeanDefinition parse(Element element, ParserContext parserContext) { - boolean isPriorityChannel = (element.getLocalName().equals("priority-channel")); - Class channelClass = (isPriorityChannel) ? PriorityChannel.class : QueueChannel.class; - RootBeanDefinition channelDef = new RootBeanDefinition(channelClass); - channelDef.setSource(parserContext.extractSource(element)); + @Override + protected boolean shouldGenerateIdAsFallback() { + return true; + } + + @Override + protected abstract Class getBeanClass(Element element); + + protected abstract void configureConstructorArgs( + BeanDefinitionBuilder builder, Element element, DispatcherPolicy dispatcherPolicy); + + @Override + protected void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) { boolean isPublishSubscribe = "true".equals(element.getAttribute(PUBLISH_SUBSCRIBE_ATTRIBUTE)); DispatcherPolicy dispatcherPolicy = new DispatcherPolicy(isPublishSubscribe); ManagedList interceptors = new ManagedList(); @@ -79,16 +84,6 @@ public class ChannelParser implements BeanDefinitionParser { interceptors.add(new RuntimeBeanReference(ref)); } } - } - String capAttr = element.getAttribute(CAPACITY_ATTRIBUTE); - int capacity = (StringUtils.hasText(capAttr)) ? Integer.parseInt(capAttr) : QueueChannel.DEFAULT_CAPACITY; - channelDef.getConstructorArgumentValues().addIndexedArgumentValue(0, capacity); - channelDef.getConstructorArgumentValues().addIndexedArgumentValue(1, dispatcherPolicy); - if (isPriorityChannel) { - String comparatorRef = element.getAttribute(COMPARATOR_REF_ATTRIBUTE); - if (StringUtils.hasText(comparatorRef)) { - channelDef.getConstructorArgumentValues().addIndexedArgumentValue(2, new RuntimeBeanReference(comparatorRef)); - } } String datatypeAttr = element.getAttribute(DATATYPE_ATTRIBUTE); if (StringUtils.hasText(datatypeAttr)) { @@ -105,10 +100,8 @@ public class ChannelParser implements BeanDefinitionParser { parserContext.registerBeanComponent(interceptorComponent); interceptors.add(new RuntimeBeanReference(interceptorBeanName)); } - channelDef.getPropertyValues().addPropertyValue(INTERCEPTORS_PROPERTY, interceptors); - String beanName = element.getAttribute(ID_ATTRIBUTE); - parserContext.registerBeanComponent(new BeanComponentDefinition(channelDef, beanName)); - return channelDef; + builder.addPropertyValue(INTERCEPTORS_PROPERTY, interceptors); + this.configureConstructorArgs(builder, element, dispatcherPolicy); } private void configureDispatcherPolicy(Element element, DispatcherPolicy dispatcherPolicy) { diff --git a/spring-integration-core/src/main/java/org/springframework/integration/channel/config/DirectChannelParser.java b/spring-integration-core/src/main/java/org/springframework/integration/channel/config/DirectChannelParser.java new file mode 100644 index 0000000000..e4e134741c --- /dev/null +++ b/spring-integration-core/src/main/java/org/springframework/integration/channel/config/DirectChannelParser.java @@ -0,0 +1,46 @@ +/* + * Copyright 2002-2008 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.integration.channel.config; + +import org.w3c.dom.Element; + +import org.springframework.beans.factory.support.BeanDefinitionBuilder; +import org.springframework.integration.channel.DispatcherPolicy; +import org.springframework.integration.dispatcher.SynchronousChannel; +import org.springframework.util.StringUtils; + +/** + * Parser for the <direct-channel> element. + * + * @author Mark Fisher + */ +public class DirectChannelParser extends AbstractChannelParser { + + @Override + protected Class getBeanClass(Element element) { + return SynchronousChannel.class; + } + + @Override + protected void configureConstructorArgs(BeanDefinitionBuilder builder, Element element, DispatcherPolicy dispatcherPolicy) { + String source = element.getAttribute("source"); + if (StringUtils.hasText(source)) { + builder.addConstructorArgReference(source); + } + } + +} diff --git a/spring-integration-core/src/main/java/org/springframework/integration/channel/config/PriorityChannelParser.java b/spring-integration-core/src/main/java/org/springframework/integration/channel/config/PriorityChannelParser.java new file mode 100644 index 0000000000..49b11b1395 --- /dev/null +++ b/spring-integration-core/src/main/java/org/springframework/integration/channel/config/PriorityChannelParser.java @@ -0,0 +1,47 @@ +/* + * Copyright 2002-2008 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.integration.channel.config; + +import org.w3c.dom.Element; + +import org.springframework.beans.factory.support.BeanDefinitionBuilder; +import org.springframework.integration.channel.DispatcherPolicy; +import org.springframework.integration.channel.PriorityChannel; +import org.springframework.util.StringUtils; + +/** + * Parser for the <priority-channel> element. + * + * @author Mark Fisher + */ +public class PriorityChannelParser extends QueueChannelParser { + + @Override + protected Class getBeanClass(Element element) { + return PriorityChannel.class; + } + + @Override + protected void configureConstructorArgs(BeanDefinitionBuilder builder, Element element, DispatcherPolicy dispatcherPolicy) { + super.configureConstructorArgs(builder, element, dispatcherPolicy); + String comparator = element.getAttribute("comparator"); + if (StringUtils.hasText(comparator)) { + builder.addConstructorArgReference(comparator); + } + } + +} diff --git a/spring-integration-core/src/main/java/org/springframework/integration/channel/config/QueueChannelParser.java b/spring-integration-core/src/main/java/org/springframework/integration/channel/config/QueueChannelParser.java new file mode 100644 index 0000000000..0ed43f5ffc --- /dev/null +++ b/spring-integration-core/src/main/java/org/springframework/integration/channel/config/QueueChannelParser.java @@ -0,0 +1,47 @@ +/* + * Copyright 2002-2008 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.integration.channel.config; + +import org.w3c.dom.Element; + +import org.springframework.beans.factory.support.BeanDefinitionBuilder; +import org.springframework.integration.channel.DispatcherPolicy; +import org.springframework.integration.channel.QueueChannel; +import org.springframework.util.StringUtils; + +/** + * Parser for the <channel> element. + * + * @author Mark Fisher + */ +public class QueueChannelParser extends AbstractChannelParser { + + @Override + protected Class getBeanClass(Element element) { + return QueueChannel.class; + } + + @Override + protected void configureConstructorArgs(BeanDefinitionBuilder builder, Element element, DispatcherPolicy dispatcherPolicy) { + String capacityAttribute = element.getAttribute("capacity"); + int capacity = (StringUtils.hasText(capacityAttribute)) ? + Integer.parseInt(capacityAttribute) : QueueChannel.DEFAULT_CAPACITY; + builder.addConstructorArgValue(capacity); + builder.addConstructorArgValue(dispatcherPolicy); + } + +} diff --git a/spring-integration-core/src/main/java/org/springframework/integration/channel/config/RendezvousChannelParser.java b/spring-integration-core/src/main/java/org/springframework/integration/channel/config/RendezvousChannelParser.java new file mode 100644 index 0000000000..6860563d80 --- /dev/null +++ b/spring-integration-core/src/main/java/org/springframework/integration/channel/config/RendezvousChannelParser.java @@ -0,0 +1,42 @@ +/* + * Copyright 2002-2008 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.integration.channel.config; + +import org.w3c.dom.Element; + +import org.springframework.beans.factory.support.BeanDefinitionBuilder; +import org.springframework.integration.channel.DispatcherPolicy; +import org.springframework.integration.channel.RendezvousChannel; + +/** + * Parser for the <rendezvous-channel> element. + * + * @author Mark Fisher + */ +public class RendezvousChannelParser extends AbstractChannelParser { + + @Override + protected Class getBeanClass(Element element) { + return RendezvousChannel.class; + } + + @Override + protected void configureConstructorArgs(BeanDefinitionBuilder builder, Element element, DispatcherPolicy dispatcherPolicy) { + builder.addConstructorArgValue(dispatcherPolicy); + } + +} diff --git a/spring-integration-core/src/main/java/org/springframework/integration/config/IntegrationNamespaceHandler.java b/spring-integration-core/src/main/java/org/springframework/integration/config/IntegrationNamespaceHandler.java index 3b0b2f986a..93ef1741e3 100644 --- a/spring-integration-core/src/main/java/org/springframework/integration/config/IntegrationNamespaceHandler.java +++ b/spring-integration-core/src/main/java/org/springframework/integration/config/IntegrationNamespaceHandler.java @@ -28,6 +28,10 @@ import org.apache.commons.logging.LogFactory; import org.springframework.beans.factory.xml.BeanDefinitionParser; import org.springframework.beans.factory.xml.NamespaceHandlerSupport; import org.springframework.core.io.support.PropertiesLoaderUtils; +import org.springframework.integration.channel.config.DirectChannelParser; +import org.springframework.integration.channel.config.PriorityChannelParser; +import org.springframework.integration.channel.config.QueueChannelParser; +import org.springframework.integration.channel.config.RendezvousChannelParser; import org.springframework.util.ClassUtils; /** @@ -47,8 +51,10 @@ public class IntegrationNamespaceHandler extends NamespaceHandlerSupport { public void init() { registerBeanDefinitionParser("message-bus", new MessageBusParser()); registerBeanDefinitionParser("annotation-driven", new AnnotationDrivenParser()); - registerBeanDefinitionParser("channel", new ChannelParser()); - registerBeanDefinitionParser("priority-channel", new ChannelParser()); + registerBeanDefinitionParser("channel", new QueueChannelParser()); + registerBeanDefinitionParser("direct-channel", new DirectChannelParser()); + registerBeanDefinitionParser("priority-channel", new PriorityChannelParser()); + registerBeanDefinitionParser("rendezvous-channel", new RendezvousChannelParser()); registerBeanDefinitionParser("source-adapter", new MethodInvokingAdapterParser()); registerBeanDefinitionParser("target-adapter", new MethodInvokingAdapterParser()); registerBeanDefinitionParser("source-endpoint", new SourceEndpointParser()); diff --git a/spring-integration-core/src/main/java/org/springframework/integration/config/spring-integration-core-1.0.xsd b/spring-integration-core/src/main/java/org/springframework/integration/config/spring-integration-core-1.0.xsd index d86832274c..f6d957138b 100644 --- a/spring-integration-core/src/main/java/org/springframework/integration/config/spring-integration-core-1.0.xsd +++ b/spring-integration-core/src/main/java/org/springframework/integration/config/spring-integration-core-1.0.xsd @@ -44,7 +44,28 @@ - + + + + Defines a channel that buffers messages in a queue. + + + + + + + + + Defines a channel that invokes its handlers directly in the sender's thread. + + + + + + + + + @@ -54,13 +75,28 @@ - - + + + + + + + + Defines a channel with a configurable capacity. + + + + + + + + + @@ -72,7 +108,6 @@ - diff --git a/spring-integration-core/src/test/java/org/springframework/integration/config/ChannelParserTests.java b/spring-integration-core/src/test/java/org/springframework/integration/channel/config/ChannelParserTests.java similarity index 99% rename from spring-integration-core/src/test/java/org/springframework/integration/config/ChannelParserTests.java rename to spring-integration-core/src/test/java/org/springframework/integration/channel/config/ChannelParserTests.java index 75b298d6f5..43fc60db24 100644 --- a/spring-integration-core/src/test/java/org/springframework/integration/config/ChannelParserTests.java +++ b/spring-integration-core/src/test/java/org/springframework/integration/channel/config/ChannelParserTests.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package org.springframework.integration.config; +package org.springframework.integration.channel.config; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; @@ -33,6 +33,7 @@ import org.springframework.context.support.ClassPathXmlApplicationContext; import org.springframework.integration.bus.SubscriptionManager; import org.springframework.integration.channel.DispatcherPolicy; import org.springframework.integration.channel.MessageChannel; +import org.springframework.integration.config.TestChannelInterceptor; import org.springframework.integration.message.GenericMessage; import org.springframework.integration.message.Message; import org.springframework.integration.message.MessageDeliveryException; diff --git a/spring-integration-core/src/test/java/org/springframework/integration/channel/config/DirectChannelParserTests.java b/spring-integration-core/src/test/java/org/springframework/integration/channel/config/DirectChannelParserTests.java new file mode 100644 index 0000000000..9f48440793 --- /dev/null +++ b/spring-integration-core/src/test/java/org/springframework/integration/channel/config/DirectChannelParserTests.java @@ -0,0 +1,61 @@ +/* + * Copyright 2002-2008 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.integration.channel.config; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; + +import org.junit.Test; + +import org.springframework.context.support.ClassPathXmlApplicationContext; +import org.springframework.integration.dispatcher.SynchronousChannel; +import org.springframework.integration.message.Message; +import org.springframework.integration.message.StringMessage; + +/** + * @author Mark Fisher + */ +public class DirectChannelParserTests { + + @Test + public void testChannelWithoutSource() { + ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext( + "directChannelParserTests.xml", DirectChannelParserTests.class); + SynchronousChannel channel = (SynchronousChannel) context.getBean("channelWithoutSource"); + assertNull(channel.receive()); + Message message = new StringMessage("test"); + assertTrue(channel.send(message)); + Message reply = channel.receive(); + assertNotNull(reply); + assertEquals(message, reply); + } + + @Test + public void testChannelWithSource() { + ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext( + "directChannelParserTests.xml", DirectChannelParserTests.class); + SynchronousChannel channel = (SynchronousChannel) context.getBean("channelWithSource"); + assertFalse(channel.send(new StringMessage("test"))); + Message reply = channel.receive(); + assertNotNull(reply); + assertEquals("foo", reply.getPayload()); + } + +} diff --git a/spring-integration-core/src/test/java/org/springframework/integration/channel/config/RendezvousChannelParserTests.java b/spring-integration-core/src/test/java/org/springframework/integration/channel/config/RendezvousChannelParserTests.java new file mode 100644 index 0000000000..7f13e2370d --- /dev/null +++ b/spring-integration-core/src/test/java/org/springframework/integration/channel/config/RendezvousChannelParserTests.java @@ -0,0 +1,40 @@ +/* + * Copyright 2002-2008 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.integration.channel.config; + +import static org.junit.Assert.assertEquals; + +import org.junit.Test; + +import org.springframework.context.support.ClassPathXmlApplicationContext; +import org.springframework.integration.channel.MessageChannel; +import org.springframework.integration.channel.RendezvousChannel; + +/** + * @author Mark Fisher + */ +public class RendezvousChannelParserTests { + + @Test + public void testRendezvous() { + ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext( + "rendezvousChannelParserTests.xml", RendezvousChannelParserTests.class); + MessageChannel channel = (MessageChannel) context.getBean("channel"); + assertEquals(RendezvousChannel.class, channel.getClass()); + } + +} diff --git a/spring-integration-core/src/test/java/org/springframework/integration/channel/config/TestSourceBean.java b/spring-integration-core/src/test/java/org/springframework/integration/channel/config/TestSourceBean.java new file mode 100644 index 0000000000..3860bae5ac --- /dev/null +++ b/spring-integration-core/src/test/java/org/springframework/integration/channel/config/TestSourceBean.java @@ -0,0 +1,35 @@ +/* + * Copyright 2002-2008 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.integration.channel.config; + +/** + * @author Mark Fisher + */ +public class TestSourceBean { + + private final String text; + + + public TestSourceBean(String text) { + this.text = text; + } + + public String getText() { + return this.text; + } + +} diff --git a/spring-integration-core/src/test/java/org/springframework/integration/config/channelInterceptorParserTests.xml b/spring-integration-core/src/test/java/org/springframework/integration/channel/config/channelInterceptorParserTests.xml similarity index 100% rename from spring-integration-core/src/test/java/org/springframework/integration/config/channelInterceptorParserTests.xml rename to spring-integration-core/src/test/java/org/springframework/integration/channel/config/channelInterceptorParserTests.xml diff --git a/spring-integration-core/src/test/java/org/springframework/integration/config/channelParserTests.xml b/spring-integration-core/src/test/java/org/springframework/integration/channel/config/channelParserTests.xml similarity index 100% rename from spring-integration-core/src/test/java/org/springframework/integration/config/channelParserTests.xml rename to spring-integration-core/src/test/java/org/springframework/integration/channel/config/channelParserTests.xml diff --git a/spring-integration-core/src/test/java/org/springframework/integration/config/channelWithoutId.xml b/spring-integration-core/src/test/java/org/springframework/integration/channel/config/channelWithoutId.xml similarity index 100% rename from spring-integration-core/src/test/java/org/springframework/integration/config/channelWithoutId.xml rename to spring-integration-core/src/test/java/org/springframework/integration/channel/config/channelWithoutId.xml diff --git a/spring-integration-core/src/test/java/org/springframework/integration/channel/config/directChannelParserTests.xml b/spring-integration-core/src/test/java/org/springframework/integration/channel/config/directChannelParserTests.xml new file mode 100644 index 0000000000..05397f28c3 --- /dev/null +++ b/spring-integration-core/src/test/java/org/springframework/integration/channel/config/directChannelParserTests.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + diff --git a/spring-integration-core/src/test/java/org/springframework/integration/config/priorityChannelParserTests.xml b/spring-integration-core/src/test/java/org/springframework/integration/channel/config/priorityChannelParserTests.xml similarity index 90% rename from spring-integration-core/src/test/java/org/springframework/integration/config/priorityChannelParserTests.xml rename to spring-integration-core/src/test/java/org/springframework/integration/channel/config/priorityChannelParserTests.xml index 4490301301..b0ea565add 100644 --- a/spring-integration-core/src/test/java/org/springframework/integration/config/priorityChannelParserTests.xml +++ b/spring-integration-core/src/test/java/org/springframework/integration/channel/config/priorityChannelParserTests.xml @@ -9,9 +9,9 @@ - + - + diff --git a/spring-integration-core/src/test/java/org/springframework/integration/channel/config/rendezvousChannelParserTests.xml b/spring-integration-core/src/test/java/org/springframework/integration/channel/config/rendezvousChannelParserTests.xml new file mode 100644 index 0000000000..8b6b8cd0f3 --- /dev/null +++ b/spring-integration-core/src/test/java/org/springframework/integration/channel/config/rendezvousChannelParserTests.xml @@ -0,0 +1,12 @@ + + + + + + diff --git a/spring-integration-core/src/test/java/org/springframework/integration/config/aggregatorParserTests.xml b/spring-integration-core/src/test/java/org/springframework/integration/config/aggregatorParserTests.xml index 66320e89fe..e88f817983 100644 --- a/spring-integration-core/src/test/java/org/springframework/integration/config/aggregatorParserTests.xml +++ b/spring-integration-core/src/test/java/org/springframework/integration/config/aggregatorParserTests.xml @@ -16,7 +16,6 @@ reaper-interval="135" tracked-correlation-id-capacity="99" timeout="42" /> - diff --git a/spring-integration-core/src/test/java/org/springframework/integration/config/duplicateCompletionStrategy.xml b/spring-integration-core/src/test/java/org/springframework/integration/config/duplicateCompletionStrategy.xml index f505000d86..90793bdea9 100644 --- a/spring-integration-core/src/test/java/org/springframework/integration/config/duplicateCompletionStrategy.xml +++ b/spring-integration-core/src/test/java/org/springframework/integration/config/duplicateCompletionStrategy.xml @@ -7,9 +7,6 @@ http://www.springframework.org/schema/integration http://www.springframework.org/schema/integration/spring-integration-core-1.0.xsd"> - - -