diff --git a/org.springframework.integration/src/main/java/org/springframework/integration/channel/DirectChannel.java b/org.springframework.integration/src/main/java/org/springframework/integration/channel/DirectChannel.java index 659aaff0ea..c388a5b7bb 100644 --- a/org.springframework.integration/src/main/java/org/springframework/integration/channel/DirectChannel.java +++ b/org.springframework.integration/src/main/java/org/springframework/integration/channel/DirectChannel.java @@ -17,7 +17,7 @@ package org.springframework.integration.channel; import org.springframework.integration.dispatcher.AbstractWinningHandlerDispatcher; -import org.springframework.integration.dispatcher.LoadBalancingDispatcher; +import org.springframework.integration.dispatcher.RoundRobinDispatcher; /** * A channel that invokes a single subscriber for each sent Message. @@ -30,8 +30,9 @@ import org.springframework.integration.dispatcher.LoadBalancingDispatcher; public class DirectChannel extends AbstractSubscribableChannel { public DirectChannel() { - super(new LoadBalancingDispatcher()); + super(new RoundRobinDispatcher()); } + public DirectChannel(AbstractWinningHandlerDispatcher dispatcher){ super(dispatcher); } diff --git a/org.springframework.integration/src/main/java/org/springframework/integration/config/xml/PointToPointChannelParser.java b/org.springframework.integration/src/main/java/org/springframework/integration/config/xml/PointToPointChannelParser.java index 9d151dbb60..42d1033fe4 100644 --- a/org.springframework.integration/src/main/java/org/springframework/integration/config/xml/PointToPointChannelParser.java +++ b/org.springframework.integration/src/main/java/org/springframework/integration/config/xml/PointToPointChannelParser.java @@ -65,7 +65,7 @@ public class PointToPointChannelParser extends AbstractChannelParser { private void parseDispatcher(String dispatcherAttribute, BeanDefinitionBuilder builder, ParserContext parserContext) { if (dispatcherAttribute != null) { - if (dispatcherAttribute.equals("fail-over")) { + if (dispatcherAttribute.equals("failover")) { BeanDefinitionBuilder dispatcherBuilder = BeanDefinitionBuilder .genericBeanDefinition(DISPATCHER_PACKAGE + ".FailOverDispatcher"); dispatcherBuilder.setRole(BeanDefinition.ROLE_SUPPORT); diff --git a/org.springframework.integration/src/main/java/org/springframework/integration/config/xml/spring-integration-1.0.xsd b/org.springframework.integration/src/main/java/org/springframework/integration/config/xml/spring-integration-1.0.xsd index 123c48de91..f609db5a5f 100644 --- a/org.springframework.integration/src/main/java/org/springframework/integration/config/xml/spring-integration-1.0.xsd +++ b/org.springframework.integration/src/main/java/org/springframework/integration/config/xml/spring-integration-1.0.xsd @@ -166,9 +166,19 @@ + + + Defines a dispatching strategy for the channel. The default is a round + robin load balancer. In case of a publish subscribe channel this + attribute will be ignored. + + - - + + diff --git a/org.springframework.integration/src/main/java/org/springframework/integration/dispatcher/LoadBalancingDispatcher.java b/org.springframework.integration/src/main/java/org/springframework/integration/dispatcher/RoundRobinDispatcher.java similarity index 94% rename from org.springframework.integration/src/main/java/org/springframework/integration/dispatcher/LoadBalancingDispatcher.java rename to org.springframework.integration/src/main/java/org/springframework/integration/dispatcher/RoundRobinDispatcher.java index f232615a70..2c203e2982 100644 --- a/org.springframework.integration/src/main/java/org/springframework/integration/dispatcher/LoadBalancingDispatcher.java +++ b/org.springframework.integration/src/main/java/org/springframework/integration/dispatcher/RoundRobinDispatcher.java @@ -24,7 +24,7 @@ import java.util.concurrent.atomic.AtomicInteger; * * @author Iwein Fuld */ -public class LoadBalancingDispatcher extends AbstractWinningHandlerDispatcher { +public class RoundRobinDispatcher extends AbstractWinningHandlerDispatcher { private AtomicInteger currentHandlerIndex = new AtomicInteger(); diff --git a/org.springframework.integration/src/test/java/org/springframework/integration/channel/config/ChannelParserTests.java b/org.springframework.integration/src/test/java/org/springframework/integration/channel/config/ChannelParserTests.java index 3b34a12449..73d7a5d046 100644 --- a/org.springframework.integration/src/test/java/org/springframework/integration/channel/config/ChannelParserTests.java +++ b/org.springframework.integration/src/test/java/org/springframework/integration/channel/config/ChannelParserTests.java @@ -38,7 +38,7 @@ import org.springframework.integration.core.Message; import org.springframework.integration.core.MessageChannel; import org.springframework.integration.core.MessagePriority; import org.springframework.integration.dispatcher.FailOverDispatcher; -import org.springframework.integration.dispatcher.LoadBalancingDispatcher; +import org.springframework.integration.dispatcher.RoundRobinDispatcher; import org.springframework.integration.message.GenericMessage; import org.springframework.integration.message.MessageBuilder; import org.springframework.integration.message.MessageDeliveryException; @@ -75,7 +75,7 @@ public class ChannelParserTests { MessageChannel channel = (MessageChannel) context.getBean("defaultChannel"); assertEquals(DirectChannel.class, channel.getClass()); DirectFieldAccessor accessor = new DirectFieldAccessor(channel); - assertThat(accessor.getPropertyValue("dispatcher"), is(LoadBalancingDispatcher.class)); + assertThat(accessor.getPropertyValue("dispatcher"), is(RoundRobinDispatcher.class)); } @Test diff --git a/org.springframework.integration/src/test/java/org/springframework/integration/channel/config/channelParserTests.xml b/org.springframework.integration/src/test/java/org/springframework/integration/channel/config/channelParserTests.xml index a9eaa7949a..9805bffed8 100644 --- a/org.springframework.integration/src/test/java/org/springframework/integration/channel/config/channelParserTests.xml +++ b/org.springframework.integration/src/test/java/org/springframework/integration/channel/config/channelParserTests.xml @@ -12,7 +12,7 @@ - + diff --git a/org.springframework.integration/src/test/java/org/springframework/integration/dispatcher/LoadBalancingDispatcherConcurrentTests.java b/org.springframework.integration/src/test/java/org/springframework/integration/dispatcher/RoundRobinDispatcherConcurrentTests.java similarity index 95% rename from org.springframework.integration/src/test/java/org/springframework/integration/dispatcher/LoadBalancingDispatcherConcurrentTests.java rename to org.springframework.integration/src/test/java/org/springframework/integration/dispatcher/RoundRobinDispatcherConcurrentTests.java index 92f8b53386..993f96b496 100644 --- a/org.springframework.integration/src/test/java/org/springframework/integration/dispatcher/LoadBalancingDispatcherConcurrentTests.java +++ b/org.springframework.integration/src/test/java/org/springframework/integration/dispatcher/RoundRobinDispatcherConcurrentTests.java @@ -16,11 +16,11 @@ import org.springframework.integration.message.MessageHandler; import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; @RunWith(MockitoJUnit44Runner.class) -public class LoadBalancingDispatcherConcurrentTests { +public class RoundRobinDispatcherConcurrentTests { private static final int TOTAL_EXECUTIONS = 40; - private AbstractWinningHandlerDispatcher dispatcher = new LoadBalancingDispatcher(); + private AbstractWinningHandlerDispatcher dispatcher = new RoundRobinDispatcher(); private ThreadPoolTaskExecutor scheduler = new ThreadPoolTaskExecutor(); diff --git a/org.springframework.integration/src/test/java/org/springframework/integration/dispatcher/LoadBalancingDispatcherTests.java b/org.springframework.integration/src/test/java/org/springframework/integration/dispatcher/RoundRobinDispatcherTests.java similarity index 94% rename from org.springframework.integration/src/test/java/org/springframework/integration/dispatcher/LoadBalancingDispatcherTests.java rename to org.springframework.integration/src/test/java/org/springframework/integration/dispatcher/RoundRobinDispatcherTests.java index 4d50f1d411..39bda7b6c9 100644 --- a/org.springframework.integration/src/test/java/org/springframework/integration/dispatcher/LoadBalancingDispatcherTests.java +++ b/org.springframework.integration/src/test/java/org/springframework/integration/dispatcher/RoundRobinDispatcherTests.java @@ -33,9 +33,9 @@ import org.springframework.integration.message.MessageHandler; * */ @RunWith(MockitoJUnit44Runner.class) -public class LoadBalancingDispatcherTests { +public class RoundRobinDispatcherTests { - private AbstractWinningHandlerDispatcher dispatcher = new LoadBalancingDispatcher(); + private AbstractWinningHandlerDispatcher dispatcher = new RoundRobinDispatcher(); @Mock private MessageHandler handler;