Add Test for an Annotation Based Control Bus
http://stackoverflow.com/questions/27849211/spring-integration-control-bus-configuration-via-annotations/27850695#27850695 Remove `ThreadLocal`
This commit is contained in:
committed by
Artem Bilan
parent
703e69ff5c
commit
1ac1c734b3
@@ -72,7 +72,6 @@ import org.springframework.integration.annotation.InboundChannelAdapter;
|
||||
import org.springframework.integration.annotation.IntegrationComponentScan;
|
||||
import org.springframework.integration.annotation.MessageEndpoint;
|
||||
import org.springframework.integration.annotation.MessagingGateway;
|
||||
import org.springframework.messaging.handler.annotation.Payload;
|
||||
import org.springframework.integration.annotation.Poller;
|
||||
import org.springframework.integration.annotation.Publisher;
|
||||
import org.springframework.integration.annotation.ServiceActivator;
|
||||
@@ -85,8 +84,10 @@ import org.springframework.integration.channel.interceptor.WireTap;
|
||||
import org.springframework.integration.config.EnableIntegration;
|
||||
import org.springframework.integration.config.EnableMessageHistory;
|
||||
import org.springframework.integration.config.EnablePublisher;
|
||||
import org.springframework.integration.config.ExpressionControlBusFactoryBean;
|
||||
import org.springframework.integration.config.GlobalChannelInterceptor;
|
||||
import org.springframework.integration.config.IntegrationConverter;
|
||||
import org.springframework.integration.core.MessagingTemplate;
|
||||
import org.springframework.integration.endpoint.MethodInvokingMessageSource;
|
||||
import org.springframework.integration.endpoint.PollingConsumer;
|
||||
import org.springframework.integration.gateway.GatewayProxyFactoryBean;
|
||||
@@ -102,6 +103,7 @@ import org.springframework.messaging.MessageDeliveryException;
|
||||
import org.springframework.messaging.MessageHandler;
|
||||
import org.springframework.messaging.MessagingException;
|
||||
import org.springframework.messaging.PollableChannel;
|
||||
import org.springframework.messaging.handler.annotation.Payload;
|
||||
import org.springframework.messaging.support.ChannelInterceptor;
|
||||
import org.springframework.messaging.support.ChannelInterceptorAdapter;
|
||||
import org.springframework.messaging.support.GenericMessage;
|
||||
@@ -246,6 +248,9 @@ public class EnableIntegrationTests {
|
||||
@Autowired
|
||||
private MessageChannel myBridgeToInput;
|
||||
|
||||
@Autowired
|
||||
private MessageChannel controlBusChannel;
|
||||
|
||||
|
||||
@Test
|
||||
public void testAnnotatedServiceActivator() {
|
||||
@@ -344,6 +349,13 @@ public class EnableIntegrationTests {
|
||||
assertEquals("bar", message.getPayload());
|
||||
assertTrue(message.getHeaders().containsKey("foo"));
|
||||
assertEquals("FOO", message.getHeaders().get("foo"));
|
||||
|
||||
MessagingTemplate messagingTemplate = new MessagingTemplate(this.controlBusChannel);
|
||||
assertFalse(messagingTemplate.convertSendAndReceive("@lifecycle.isRunning()", Boolean.class));
|
||||
this.controlBusChannel.send(new GenericMessage<String>("@lifecycle.start()"));
|
||||
assertTrue(messagingTemplate.convertSendAndReceive("@lifecycle.isRunning()", Boolean.class));
|
||||
this.controlBusChannel.send(new GenericMessage<String>("@lifecycle.stop()"));
|
||||
assertFalse(messagingTemplate.convertSendAndReceive("@lifecycle.isRunning()", Boolean.class));
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -862,6 +874,36 @@ public class EnableIntegrationTests {
|
||||
};
|
||||
}
|
||||
|
||||
@Bean
|
||||
@ServiceActivator(inputChannel = "controlBusChannel")
|
||||
public ExpressionControlBusFactoryBean controlBus() throws Exception {
|
||||
return new ExpressionControlBusFactoryBean();
|
||||
}
|
||||
|
||||
@Bean
|
||||
public Lifecycle lifecycle() {
|
||||
return new Lifecycle() {
|
||||
|
||||
private volatile boolean running;
|
||||
|
||||
@Override
|
||||
public void start() {
|
||||
this.running = true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void stop() {
|
||||
this.running = false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isRunning() {
|
||||
return this.running;
|
||||
}
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
@Bean
|
||||
public PollableChannel publishedChannel() {
|
||||
return new QueueChannel();
|
||||
|
||||
Reference in New Issue
Block a user