/** * Set the timeout value for receiving reply messages. If not * explicitly configured, the default is one second. * @param replyTimeout the timeout value in milliseconds */ public void setReplyTimeout(long replyTimeout) { this.replyTimeout = replyTimeout; this.messagingTemplate.setReceiveTimeout(replyTimeout); }
@Before public void setUp() { jobRepository = new SimpleJobRepository(new MapJobInstanceDao(), new MapJobExecutionDao(), new MapStepExecutionDao(), new MapExecutionContextDao()); factory.setJobRepository(jobRepository); factory.setTransactionManager(new ResourcelessTransactionManager()); factory.setBeanName("step"); factory.setItemWriter(writer); factory.setCommitInterval(4); MessagingTemplate gateway = new MessagingTemplate(); writer.setMessagingOperations(gateway); gateway.setDefaultChannel(requests); writer.setReplyChannel(replies); gateway.setReceiveTimeout(100); TestItemWriter.count = 0; // Drain queues Message<?> message = replies.receive(10); while (message != null) { System.err.println(message); message = replies.receive(10); } }
/** * If errorOnTimeout is true, construct an instance that will send an * {@link ErrorMessage} with a {@link MessageTimeoutException} payload to the error * channel if a reply is expected but none is received. If no error channel is * configured, the {@link MessageTimeoutException} will be thrown. * * @param errorOnTimeout true to create the error message. * @since 4.2 */ public MessagingGatewaySupport(boolean errorOnTimeout) { MessagingTemplate template = new MessagingTemplate(); template.setMessageConverter(this.messageConverter); template.setSendTimeout(DEFAULT_TIMEOUT); template.setReceiveTimeout(this.replyTimeout); this.messagingTemplate = template; this.errorOnTimeout = errorOnTimeout; }
private List<String> sendAndReceiveMessage(DirectChannel channel, int timeout, Message<?> input) { MessagingTemplate messagingTemplate = new MessagingTemplate(); messagingTemplate.setReceiveTimeout(timeout); @SuppressWarnings("unchecked") Message<List<String>> message = (Message<List<String>>) messagingTemplate.sendAndReceive(channel, input); return message == null ? null : message.getPayload(); }
protected void setupMessagingTemplate() { PollableChannel pollableChannel = this.appCtx.getBean("target", PollableChannel.class); this.messagingTemplate = new MessagingTemplate(); this.messagingTemplate.setDefaultDestination(pollableChannel); this.messagingTemplate.setReceiveTimeout(10000); }
protected void setupMessagingTemplate() { PollableChannel pollableChannel = this.context.getBean("output", PollableChannel.class); this.messagingTemplate = new MessagingTemplate(); this.messagingTemplate.setDefaultDestination(pollableChannel); this.messagingTemplate.setReceiveTimeout(10000); }
@Test public void testNoAutoStartupInboundChannelAdapter() { setUp("pollingNoAutoStartupJdbcInboundChannelAdapterTest.xml", getClass()); this.jdbcTemplate.update("insert into item values(1,'',2)"); messagingTemplate.setReceiveTimeout(1); Message<?> message = messagingTemplate.receive(); assertNull("Message found ", message); }
@Test public void testAddRecipientWithNullExpression() { MessagingTemplate messagingTemplate = new MessagingTemplate(); messagingTemplate.setReceiveTimeout(1000); messagingTemplate.convertAndSend(input, "@'simpleRouter.handler'.addRecipient('channel3')"); Message<?> message = new GenericMessage<Integer>(1); channel.send(message); PollableChannel chanel3 = (PollableChannel) context.getBean("channel3"); assertTrue(chanel3.receive(0).getPayload().equals(1)); }
@Test public void testJmx() throws Exception { MessagingTemplate messagingTemplate = new MessagingTemplate(); messagingTemplate.setReceiveTimeout(1000); Set<ObjectName> names = this.server.queryNames(ObjectName .getInstance("update.mapping.domain:type=MessageHandler,name=router,bean=endpoint"), null); assertEquals(1, names.size()); Map<String, String> map = new HashMap<String, String>(); map.put("foo", "bar"); map.put("baz", "qux"); Object[] params = new Object[] {map}; this.server.invoke(names.iterator().next(), "setChannelMappings", params, new String[] { "java.util.Map" }); Map<?, ?> mappings = messagingTemplate.convertSendAndReceive(control, "@'router.handler'.getChannelMappings()", Map.class); assertNotNull(mappings); assertEquals(2, mappings.size()); assertEquals("bar", mappings.get("foo")); assertEquals("qux", mappings.get("baz")); }
@Test public void testSetRecipients() { MessagingTemplate messagingTemplate = new MessagingTemplate(); messagingTemplate.setReceiveTimeout(1000); Map<String, String> map = new HashMap<String, String>(); map.put("channel6", "true"); Message<?> message = MessageBuilder.withPayload("@'simpleRouter.handler'.setRecipientMappings(headers.recipientMap)").setHeader("recipientMap", map).build(); this.input.send(message); message = new GenericMessage<Integer>(1); channel.send(message); PollableChannel chanel6 = (PollableChannel) context.getBean("channel6"); assertTrue(chanel6.receive(0).getPayload().equals(1)); }
@Test public void testAddRecipient() { MessagingTemplate messagingTemplate = new MessagingTemplate(); messagingTemplate.setReceiveTimeout(1000); messagingTemplate.convertAndSend(input, "@'simpleRouter.handler'.addRecipient('channel2','true')"); Message<?> message = new GenericMessage<Integer>(1); channel.send(message); PollableChannel chanel2 = (PollableChannel) context.getBean("channel2"); assertTrue(chanel2.receive(0).getPayload().equals(1)); }
@Test public void testReplaceRecipients() { MessagingTemplate messagingTemplate = new MessagingTemplate(); messagingTemplate.setReceiveTimeout(1000); messagingTemplate.convertAndSend(input, "@'simpleRouter.handler'.replaceRecipients('channel7=true')"); Message<?> message = new GenericMessage<Integer>(1); channel.send(message); PollableChannel chanel7 = (PollableChannel) context.getBean("channel7"); assertTrue(chanel7.receive(0).getPayload().equals(1)); } }
@Test @SuppressWarnings("unchecked") public void testGetRecipients() { MessagingTemplate messagingTemplate = new MessagingTemplate(); messagingTemplate.setReceiveTimeout(1000); messagingTemplate.convertAndSend(input, "@'simpleRouter.handler'.addRecipient('channel1')"); messagingTemplate.convertAndSend(input, "@'simpleRouter.handler'.getRecipients()"); PollableChannel channel1 = (PollableChannel) context.getBean("channel1"); Message<?> result = this.output.receive(0); Collection<Recipient> mappings = (Collection<Recipient>) result.getPayload(); assertEquals(channel1, mappings.iterator().next().getChannel()); }
@Test public void testSimpleInboundChannelAdapterWithUpdate() { setUp("pollingForMapJdbcInboundChannelAdapterWithUpdateTest.xml", getClass()); this.jdbcTemplate.update("insert into item values(1,'',2)"); Message<?> message = messagingTemplate.receive(); assertNotNull(message); messagingTemplate.setReceiveTimeout(1); message = messagingTemplate.receive(); assertNull(message); }
@Test public void testSimpleInboundChannelAdapterWithNestedUpdate() { setUp("pollingForMapJdbcInboundChannelAdapterWithNestedUpdateTest.xml", getClass()); this.jdbcTemplate.update("insert into item values(1,'',2)"); Message<?> message = messagingTemplate.receive(); assertNotNull(message); messagingTemplate.setReceiveTimeout(1); message = messagingTemplate.receive(); assertNull(message); }
@Test public void testRemoveRecipient() { MessagingTemplate messagingTemplate = new MessagingTemplate(); messagingTemplate.setReceiveTimeout(1000); messagingTemplate.convertAndSend(input, "@'simpleRouter.handler'.addRecipient('channel1')"); messagingTemplate.convertAndSend(input, "@'simpleRouter.handler'.addRecipient('channel4')"); messagingTemplate.convertAndSend(input, "@'simpleRouter.handler'.removeRecipient('channel4')"); Message<?> message = new GenericMessage<Integer>(1); channel.send(message); PollableChannel chanel1 = (PollableChannel) context.getBean("channel1"); PollableChannel chanel4 = (PollableChannel) context.getBean("channel4"); assertTrue(chanel1.receive(0).getPayload().equals(1)); assertNull(chanel4.receive(0)); }
@Test public void testRemoveRecipientWithExpression() { MessagingTemplate messagingTemplate = new MessagingTemplate(); messagingTemplate.setReceiveTimeout(1000); messagingTemplate.convertAndSend(input, "@'simpleRouter.handler'.addRecipient('channel1','true')"); messagingTemplate.convertAndSend(input, "@'simpleRouter.handler'.addRecipient('channel5','true')"); messagingTemplate.convertAndSend(input, "@'simpleRouter.handler'.removeRecipient('channel5','true')"); Message<?> message = new GenericMessage<Integer>(1); channel.send(message); PollableChannel chanel1 = (PollableChannel) context.getBean("channel1"); PollableChannel chanel5 = (PollableChannel) context.getBean("channel5"); assertTrue(chanel1.receive(0).getPayload().equals(1)); assertNull(chanel5.receive(0)); }
@Test public void testChangeRouterMappings() { MessagingTemplate messagingTemplate = new MessagingTemplate(); messagingTemplate.setReceiveTimeout(1000); messagingTemplate.convertAndSend(control, "@'router.handler'.replaceChannelMappings('foo=bar \n baz=qux')"); Map<?, ?> mappings = messagingTemplate.convertSendAndReceive(control, "@'router.handler'.getChannelMappings()", Map.class); assertNotNull(mappings); assertEquals(2, mappings.size()); assertEquals("bar", mappings.get("foo")); assertEquals("qux", mappings.get("baz")); messagingTemplate.convertAndSend(control, "@'router.handler'.replaceChannelMappings('foo=qux \n baz=bar')"); mappings = messagingTemplate.convertSendAndReceive(control, "@'router.handler'.getChannelMappings()", Map.class); assertEquals(2, mappings.size()); assertEquals("bar", mappings.get("baz")); assertEquals("qux", mappings.get("foo")); }
@Test public void testRouterMappings() { MessagingTemplate messagingTemplate = new MessagingTemplate(); messagingTemplate.setReceiveTimeout(1000); messagingTemplate.convertAndSend(input, "@'router.handler'.getChannelMappings()"); Message<?> result = this.output.receive(0); assertNotNull(result); Map<?, ?> mappings = (Map<?, ?>) result.getPayload(); assertEquals("bar", mappings.get("foo")); assertEquals("qux", mappings.get("baz")); messagingTemplate.convertAndSend(input, "@'router.handler'.replaceChannelMappings('foo=qux \n baz=bar')"); messagingTemplate.convertAndSend(input, "@'router.handler'.getChannelMappings()"); result = this.output.receive(0); assertNotNull(result); mappings = (Map<?, ?>) result.getPayload(); assertEquals("bar", mappings.get("baz")); assertEquals("qux", mappings.get("foo")); }
messagingTemplate.setReceiveTimeout(100000); Integer active = messagingTemplate.convertSendAndReceive("foo", Integer.class); assertEquals(1, active.intValue());