this.messagingTemplate.convertAndSend((MessageChannel) replyChannel, output); this.messagingTemplate.convertAndSend((String) replyChannel, output);
protected void send(Object object) { this.initializeIfNecessary(); Assert.notNull(object, "request must not be null"); MessageChannel channel = getRequestChannel(); Assert.state(channel != null, "send is not supported, because no request channel has been configured"); try { if (this.countsEnabled) { this.messageCount.incrementAndGet(); } this.messagingTemplate.convertAndSend(channel, object, this.historyWritingPostProcessor); } catch (Exception e) { MessageChannel errorChan = getErrorChannel(); if (errorChan != null) { this.messagingTemplate.send(errorChan, new ErrorMessage(e)); } else { this.rethrow(e, "failed to send message"); } } }
@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 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 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 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)); } }
@Bean public RoutingSlipRouteStrategy routeStrategy() { return (requestMessage, reply) -> requestMessage.getPayload() instanceof String ? new FixedSubscriberChannel(m -> Flux.just((String) m.getPayload()) .map(String::toUpperCase) .subscribe(v -> messagingTemplate() .convertAndSend(resultsChannel(), v))) : new FixedSubscriberChannel(m -> Flux.just((Integer) m.getPayload()) .map(v -> v * 2) .subscribe(v -> messagingTemplate() .convertAndSend(resultsChannel(), v))); }
@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")); }
@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 testControlHeaderChannelReaper() throws InterruptedException { MessagingTemplate messagingTemplate = new MessagingTemplate(); messagingTemplate.convertAndSend(input, "@integrationHeaderChannelRegistry.size()"); Message<?> result = this.output.receive(0); assertNotNull(result); // No channels in the registry assertEquals(0, result.getPayload()); this.registry.channelToChannelName(new DirectChannel()); // Sleep a bit to be sure that we aren't reaped by registry TTL as 60000 Thread.sleep(10); messagingTemplate.convertAndSend(input, "@integrationHeaderChannelRegistry.size()"); result = this.output.receive(0); assertNotNull(result); assertEquals(1, result.getPayload()); // Some DirectFieldAccessor magic to modify 'expireAt' to the past to avoid timing issues on high-loaded build Object messageChannelWrapper = TestUtils.getPropertyValue(this.registry, "channels", Map.class).values().iterator().next(); DirectFieldAccessor dfa = new DirectFieldAccessor(messageChannelWrapper); dfa.setPropertyValue("expireAt", System.currentTimeMillis() - 60000); messagingTemplate.convertAndSend(input, "@integrationHeaderChannelRegistry.runReaper()"); messagingTemplate.convertAndSend(input, "@integrationHeaderChannelRegistry.size()"); result = this.output.receive(0); assertNotNull(result); assertEquals(0, result.getPayload()); }
@Test public void test() { Message<?> received = fooChannel.receive(10000); assertNotNull(received); Collection<?> primes = (Collection<?>) received.getPayload(); assertThat(primes, Matchers.<Object>contains(2, 3, 5, 7)); received = fooChannel.receive(100); // verify maxMessagesPerPoll == 1 assertNull(received); MessagingTemplate template = new MessagingTemplate(this.control); template.convertAndSend("@'storedProcJavaConfigTests.Config.storedProc.inboundChannelAdapter'.stop()"); assertFalse(template.convertSendAndReceive( "@'storedProcJavaConfigTests.Config.storedProc.inboundChannelAdapter'.isRunning()", Boolean.class)); }
public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext("siia/jms/channel-adapters.xml"); MessageChannel toJMS = context.getBean("toJMS", MessageChannel.class); PollableChannel fromJMS = context.getBean("fromJMS", PollableChannel.class); MessagingTemplate template = new MessagingTemplate(); template.convertAndSend(toJMS, "echo"); Object response = template.receiveAndConvert(fromJMS); System.out.println("response: " + response); }
public static void main(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext("siia/jms/gateways.xml"); MessageChannel toJMS = context.getBean("toJMS", MessageChannel.class); PollableChannel jmsReplies = context.getBean("jmsReplies", PollableChannel.class); MessagingTemplate template = new MessagingTemplate(); template.convertAndSend(toJMS, "echo"); Object response = template.receiveAndConvert(jmsReplies); System.out.println("response: " + response); }
this.messagingTemplate.convertAndSend((MessageChannel) replyChannel, output); this.messagingTemplate.convertAndSend((String) replyChannel, output);
protected void send(Object object) { this.initializeIfNecessary(); Assert.notNull(object, "request must not be null"); MessageChannel channel = getRequestChannel(); Assert.state(channel != null, "send is not supported, because no request channel has been configured"); try { if (this.countsEnabled) { this.messageCount.incrementAndGet(); } this.messagingTemplate.convertAndSend(channel, object, this.historyWritingPostProcessor); } catch (Exception e) { MessageChannel errorChan = getErrorChannel(); if (errorChan != null) { this.messagingTemplate.send(errorChan, new ErrorMessage(e)); } else { this.rethrow(e, "failed to send message"); } } }