INT-1225. Set RRLBS as a default load-balancing strategy at the instance level of Direct/ExecutorChannel. Adjusted some of the tests
This commit is contained in:
@@ -17,14 +17,18 @@
|
||||
package org.springframework.integration.channel;
|
||||
|
||||
import static org.junit.Assert.assertEquals;
|
||||
import static org.junit.Assert.assertTrue;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import org.springframework.beans.DirectFieldAccessor;
|
||||
import org.springframework.context.support.ClassPathXmlApplicationContext;
|
||||
import org.springframework.integration.channel.DirectChannel;
|
||||
import org.springframework.integration.dispatcher.RoundRobinLoadBalancingStrategy;
|
||||
|
||||
/**
|
||||
* @author Mark Fisher
|
||||
* @author Oleg Zhurakousky
|
||||
*/
|
||||
public class DirectChannelParserTests {
|
||||
|
||||
@@ -34,6 +38,8 @@ public class DirectChannelParserTests {
|
||||
"directChannelParserTests.xml", DirectChannelParserTests.class);
|
||||
Object channel = context.getBean("channel");
|
||||
assertEquals(DirectChannel.class, channel.getClass());
|
||||
DirectFieldAccessor dcAccessor = new DirectFieldAccessor(((DirectChannel)channel).getDispatcher());
|
||||
assertTrue(dcAccessor.getPropertyValue("loadBalancingStrategy") instanceof RoundRobinLoadBalancingStrategy);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -24,12 +24,16 @@ import java.util.concurrent.TimeUnit;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import org.springframework.beans.DirectFieldAccessor;
|
||||
import org.springframework.integration.core.Message;
|
||||
import org.springframework.integration.dispatcher.RoundRobinLoadBalancingStrategy;
|
||||
import org.springframework.integration.dispatcher.UnicastingDispatcher;
|
||||
import org.springframework.integration.message.MessageHandler;
|
||||
import org.springframework.integration.message.StringMessage;
|
||||
|
||||
/**
|
||||
* @author Mark Fisher
|
||||
* @author Oleg Zhurakousky
|
||||
*/
|
||||
public class DirectChannelTests {
|
||||
|
||||
@@ -41,6 +45,11 @@ public class DirectChannelTests {
|
||||
StringMessage message = new StringMessage("test");
|
||||
assertTrue(channel.send(message));
|
||||
assertEquals(Thread.currentThread().getName(), target.threadName);
|
||||
DirectFieldAccessor channelAccessor = new DirectFieldAccessor(channel);
|
||||
UnicastingDispatcher dispatcher = (UnicastingDispatcher) channelAccessor.getPropertyValue("dispatcher");
|
||||
DirectFieldAccessor dispatcherAccessor = new DirectFieldAccessor(dispatcher);
|
||||
Object loadBalancingStrategy = dispatcherAccessor.getPropertyValue("loadBalancingStrategy");
|
||||
assertTrue(loadBalancingStrategy instanceof RoundRobinLoadBalancingStrategy);
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
@@ -130,7 +130,7 @@ public class ExecutorChannelTests {
|
||||
int numberOfMessages = 11;
|
||||
ConcurrentTaskExecutor taskExecutor = new ConcurrentTaskExecutor(
|
||||
Executors.newSingleThreadScheduledExecutor(new CustomizableThreadFactory("test-")));
|
||||
ExecutorChannel channel = new ExecutorChannel(taskExecutor);
|
||||
ExecutorChannel channel = new ExecutorChannel(taskExecutor, null);
|
||||
CountDownLatch latch = new CountDownLatch(numberOfMessages);
|
||||
TestHandler handler1 = new TestHandler(latch);
|
||||
TestHandler handler2 = new TestHandler(latch);
|
||||
|
||||
@@ -23,6 +23,8 @@ import java.util.List;
|
||||
|
||||
import org.junit.Test;
|
||||
|
||||
import org.springframework.beans.factory.config.ConstructorArgumentValues;
|
||||
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
|
||||
import org.springframework.beans.factory.support.RootBeanDefinition;
|
||||
import org.springframework.context.support.GenericApplicationContext;
|
||||
import org.springframework.core.annotation.Order;
|
||||
@@ -70,7 +72,9 @@ public class SubscriberOrderTests {
|
||||
public void directChannelAndFailoverDispatcherWithMultipleCallsPerMethod() {
|
||||
GenericApplicationContext context = new GenericApplicationContext();
|
||||
context.registerBeanDefinition("postProcessor", new RootBeanDefinition(MessagingAnnotationPostProcessor.class));
|
||||
RootBeanDefinition channelDefinition = new RootBeanDefinition(DirectChannel.class);
|
||||
BeanDefinitionBuilder channelBuilder = BeanDefinitionBuilder.rootBeanDefinition(DirectChannel.class);
|
||||
channelBuilder.addConstructorArgValue(null);
|
||||
RootBeanDefinition channelDefinition = (RootBeanDefinition) channelBuilder.getBeanDefinition();
|
||||
context.registerBeanDefinition("input", channelDefinition);
|
||||
RootBeanDefinition testBeanDefinition = new RootBeanDefinition(TestBean.class);
|
||||
testBeanDefinition.getConstructorArgumentValues().addGenericArgumentValue(2);
|
||||
|
||||
Reference in New Issue
Block a user