ChannelFactory now accepts the channel name (INT-280).

This commit is contained in:
Mark Fisher
2008-07-05 22:59:25 +00:00
parent 9b787a0d5a
commit 5d25b93461
6 changed files with 60 additions and 11 deletions

View File

@@ -28,6 +28,8 @@ import org.junit.Test;
import org.springframework.beans.DirectFieldAccessor;
import org.springframework.beans.factory.support.BeanDefinitionBuilder;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.context.support.StaticApplicationContext;
import org.springframework.integration.bus.DefaultChannelFactoryBean;
import org.springframework.integration.bus.MessageBus;
@@ -74,8 +76,9 @@ public class ChannelFactoryTests {
DirectChannelFactory channelFactory = new DirectChannelFactory();
assertNotNull(interceptors);
AbstractMessageChannel channel = (AbstractMessageChannel)
channelFactory.getChannel(dispatcherPolicy, interceptors);
channelFactory.getChannel("testChannel", dispatcherPolicy, interceptors);
assertEquals(DirectChannel.class, channel.getClass());
assertEquals("testChannel", channel.getName());
assertInterceptors(channel);
}
@@ -96,8 +99,9 @@ public class ChannelFactoryTests {
ThreadLocalChannelFactory channelFactory = new ThreadLocalChannelFactory();
assertNotNull(interceptors);
AbstractMessageChannel channel = (AbstractMessageChannel)
channelFactory.getChannel(dispatcherPolicy, interceptors);
channelFactory.getChannel("testChannel", dispatcherPolicy, interceptors);
assertEquals(ThreadLocalChannel.class, channel.getClass());
assertEquals("testChannel", channel.getName());
assertInterceptors(channel);
}
@@ -111,20 +115,34 @@ public class ChannelFactoryTests {
messageBusDefinitionBuilder.getBeanDefinition().getPropertyValues().addPropertyValue("channelFactory", channelFactory);
applicationContext.registerBeanDefinition("messageBus", messageBusDefinitionBuilder.getBeanDefinition());
DefaultChannelFactoryBean channelFactoryBean = new DefaultChannelFactoryBean(dispatcherPolicy);
channelFactoryBean.setBeanName("testChannel");
channelFactoryBean.setApplicationContext(applicationContext);
channelFactoryBean.setInterceptors(interceptors);
StubChannel channel = (StubChannel)channelFactoryBean.getObject();
StubChannel channel = (StubChannel) channelFactoryBean.getObject();
assertEquals("testChannel", channel.getName());
assertTrue(dispatcherPolicy == channel.getDispatcherPolicy());
assertInterceptors(channel);
}
@Test
public void testDefaultChannelFactoryBeanInApplicationContext() throws Exception{
ApplicationContext context = new ClassPathXmlApplicationContext(
"defaultChannelFactoryBeanTests.xml", this.getClass());
MessageChannel channel = (MessageChannel) context.getBean("testChannel");
assertEquals(StubChannel.class, channel.getClass());
assertEquals("testChannel", channel.getName());
DispatcherPolicy dispatcherPolicy = (DispatcherPolicy) context.getBean("dispatcherPolicy");
assertTrue(dispatcherPolicy == channel.getDispatcherPolicy());
}
private void genericChannelFactoryTests(ChannelFactory channelFactory, Class<?> expectedChannelClass) {
assertNotNull(dispatcherPolicy);
assertNotNull(interceptors);
AbstractMessageChannel channel = (AbstractMessageChannel)
channelFactory.getChannel(dispatcherPolicy, interceptors);
channelFactory.getChannel("testChannel", dispatcherPolicy, interceptors);
assertEquals(expectedChannelClass, channel.getClass());
assertEquals("testChannel", channel.getName());
assertTrue(channel.getDispatcherPolicy() == dispatcherPolicy);
assertInterceptors(channel);
}

View File

@@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/integration"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:beans="http://www.springframework.org/schema/beans"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/integration
http://www.springframework.org/schema/integration/spring-integration-core-1.0.xsd">
<message-bus channel-factory="factory"/>
<beans:bean id="factory" class="org.springframework.integration.channel.factory.StubChannelFactory"/>
<beans:bean id="testChannel" class="org.springframework.integration.bus.DefaultChannelFactoryBean">
<beans:constructor-arg ref="dispatcherPolicy"/>
</beans:bean>
<beans:bean id="dispatcherPolicy" class="org.springframework.integration.channel.DispatcherPolicy"/>
</beans:beans>