/** * Build a master {@link TaskletStep}. * * @return the configured master step * @see RemoteChunkHandlerFactoryBean */ public TaskletStep build() { Assert.notNull(this.inputChannel, "An InputChannel must be provided"); Assert.state(this.outputChannel == null || this.messagingTemplate == null, "You must specify either an outputChannel or a messagingTemplate but not both."); // configure messaging template if (this.messagingTemplate == null) { this.messagingTemplate = new MessagingTemplate(); this.messagingTemplate.setDefaultChannel(this.outputChannel); if (this.logger.isDebugEnabled()) { this.logger.debug("No messagingTemplate was provided, using a default one"); } } // configure item writer ChunkMessageChannelItemWriter<O> chunkMessageChannelItemWriter = new ChunkMessageChannelItemWriter<>(); chunkMessageChannelItemWriter.setMessagingOperations(this.messagingTemplate); chunkMessageChannelItemWriter.setMaxWaitTimeouts(this.maxWaitTimeouts); chunkMessageChannelItemWriter.setThrottleLimit(this.throttleLimit); chunkMessageChannelItemWriter.setReplyChannel(this.inputChannel); super.writer(chunkMessageChannelItemWriter); return super.build(); }
this.messagingTemplate = new MessagingTemplate(); this.messagingTemplate.setDefaultChannel(this.outputChannel); if (this.logger.isDebugEnabled()) {
@Test public void eitherOutputChannelOrMessagingTemplateMustBeProvided() { // given RemotePartitioningMasterStepBuilder builder = new RemotePartitioningMasterStepBuilder("step") .outputChannel(new DirectChannel()) .messagingTemplate(new MessagingTemplate()); this.expectedException.expect(IllegalStateException.class); this.expectedException.expectMessage("You must specify either an outputChannel or a messagingTemplate but not both."); // when Step step = builder.build(); // then // expected exception }
@Test public void eitherOutputChannelOrMessagingTemplateMustBeProvided() { // given RemoteChunkingMasterStepBuilder<String, String> builder = new RemoteChunkingMasterStepBuilder<String, String>("step") .inputChannel(this.inputChannel) .outputChannel(new DirectChannel()) .messagingTemplate(new MessagingTemplate()); this.expectedException.expect(IllegalStateException.class); this.expectedException.expectMessage("You must specify either an outputChannel or a messagingTemplate but not both."); // when TaskletStep step = builder.build(); // then // expected exception }
@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); } }
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); }
@Test public void testControlMessageToChannelMetrics() { MessageChannel control = this.context.getBean("controlChannel", MessageChannel.class); MessagingTemplate messagingTemplate = new MessagingTemplate(); Object value = messagingTemplate.convertSendAndReceive(control, "@integrationMbeanExporter.getChannelSendRate('testChannel').count", Object.class); assertEquals(0, value); }
@Test public void expressionWithDateType() { MessagingTemplate template = new MessagingTemplate(); MessageChannel channel = context.getBean("expressionWithDateTypeInput", MessageChannel.class); Message<?> result = template.sendAndReceive(channel, new GenericMessage<>("test")); assertNotNull(result); Object headerValue = result.getHeaders().get("currentDate"); assertEquals(Date.class, headerValue.getClass()); Date date = (Date) headerValue; assertTrue(new Date().getTime() - date.getTime() < 1000); }
private MessageHandler echoInboundStringHandler() { return message -> { assertTrue(message.getPayload() instanceof String); MessagingTemplate template = new MessagingTemplate(); template.setDefaultDestination((MessageChannel) message.getHeaders().getReplyChannel()); template.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 expressionWithLongType() { MessagingTemplate template = new MessagingTemplate(); MessageChannel channel = context.getBean("expressionWithLongTypeInput", MessageChannel.class); Message<?> result = template.sendAndReceive(channel, new GenericMessage<>("test")); assertNotNull(result); assertEquals(Long.class, result.getHeaders().get("number").getClass()); assertEquals(12345L, result.getHeaders().get("number")); }
@Test public void refWithMethod() { MessagingTemplate template = new MessagingTemplate(); MessageChannel channel = context.getBean("refWithMethod", MessageChannel.class); Message<?> result = template.sendAndReceive(channel, new GenericMessage<>("test")); assertNotNull(result); assertEquals(String.class, result.getHeaders().get("testHeader").getClass()); assertEquals("testBeanForMethodInvoker", result.getHeaders().get("testHeader")); }
@Test public void priorityExpression() { MessagingTemplate template = new MessagingTemplate(); MessageChannel channel = context.getBean("priorityExpressionInput", MessageChannel.class); Message<?> result = template.sendAndReceive(channel, new GenericMessage<>(Collections.singletonMap("priority", "-10"))); assertNotNull(result); assertEquals(new Integer(-10), new IntegrationMessageHeaderAccessor(result).getPriority()); }
@Test public void innerBean() { MessagingTemplate template = new MessagingTemplate(); MessageChannel channel = context.getBean("innerBean", MessageChannel.class); Message<?> result = template.sendAndReceive(channel, new GenericMessage<>("test")); assertNotNull(result); assertEquals(TestBean.class, result.getHeaders().get("testHeader").getClass()); TestBean testBeanForInnerBean = new TestBean("testBeanForInnerBean"); assertEquals(testBeanForInnerBean, result.getHeaders().get("testHeader")); }
@Test public void priority() { MessagingTemplate template = new MessagingTemplate(); MessageChannel channel = context.getBean("priorityInput", MessageChannel.class); Message<?> result = template.sendAndReceive(channel, new GenericMessage<>("test")); assertNotNull(result); assertEquals(new Integer(42), new IntegrationMessageHeaderAccessor(result).getPriority()); }
@Test public void priorityExplicitOverwriteTrue() { MessageChannel channel = this.context.getBean("priorityExplicitOverwriteTrueInput", MessageChannel.class); MessagingTemplate template = new MessagingTemplate(); template.setDefaultDestination(channel); Message<?> result = template.sendAndReceive(new GenericMessage<String>("test")); assertNotNull(result); assertEquals(new Integer(42), new IntegrationMessageHeaderAccessor(result).getPriority()); }
@Test public void expressionUsingHeader() { MessagingTemplate template = new MessagingTemplate(); MessageChannel channel = context.getBean("headerExpressionInput", MessageChannel.class); Message<?> message = MessageBuilder.withPayload("test").setHeader("testHeader1", "foo").build(); Message<?> result = template.sendAndReceive(channel, message); assertNotNull(result); assertEquals("foobar", result.getHeaders().get("testHeader2")); }
@Test public void correlationIdValue() { MessagingTemplate template = new MessagingTemplate(); MessageChannel channel = context.getBean("correlationIdValueInput", MessageChannel.class); Message<?> result = template.sendAndReceive(channel, new GenericMessage<>("test")); assertNotNull(result); assertEquals("ABC", new IntegrationMessageHeaderAccessor(result).getCorrelationId()); }
@Test public void testTcpGateways() { TestingUtilities.waitListening(this.server1, null); this.client1.stop(); this.client1.setPort(this.server1.getPort()); this.client1.start(); MessagingTemplate messagingTemplate = new MessagingTemplate(this.clientTcpFlowInput); assertThat(messagingTemplate.convertSendAndReceive("foo", String.class), equalTo("FOO")); assertTrue(this.adviceCalled.get()); }