private void initializeIfNecessary() { if (!this.initialized) { this.afterPropertiesSet(); } }
@Before public void initializeSample() { this.messagingGateway = new MessagingGatewaySupport() { }; this.messagingGateway.setRequestChannel(this.requestChannel); this.messagingGateway.setReplyChannel(this.replyChannel); this.messagingGateway.setBeanFactory(this.applicationContext); this.messagingGateway.setCountsEnabled(true); this.messagingGateway.afterPropertiesSet(); this.messagingGateway.start(); this.applicationContext.refresh(); Mockito.when(this.messageMock.getHeaders()).thenReturn(new MessageHeaders(Collections.emptyMap())); }
private void initializeIfNecessary() { if (!this.initialized) { this.afterPropertiesSet(); } }
@Test public void nestedWithinHandler() { DirectChannel innerChannel = new DirectChannel(); DirectChannel outerChannel = new DirectChannel(); innerChannel.subscribe(new AbstractReplyProducingMessageHandler() { @Override protected Object handleRequestMessage(Message<?> requestMessage) { return requestMessage.getPayload() + "-reply"; } }); final MessagingGatewaySupport innerGateway = new MessagingGatewaySupport() { }; innerGateway.setRequestChannel(innerChannel); innerGateway.setBeanFactory(mock(BeanFactory.class)); innerGateway.afterPropertiesSet(); outerChannel.subscribe(new AbstractReplyProducingMessageHandler() { @Override protected Object handleRequestMessage(Message<?> requestMessage) { return innerGateway.sendAndReceiveMessage( "pre-" + requestMessage.getPayload()).getPayload() + "-post"; } }); MessagingGatewaySupport outerGateway = new MessagingGatewaySupport() { }; outerGateway.setRequestChannel(outerChannel); outerGateway.setBeanFactory(mock(BeanFactory.class)); outerGateway.afterPropertiesSet(); Message<?> reply = outerGateway.sendAndReceiveMessage("test"); assertEquals("pre-test-reply-post", reply.getPayload()); }
@Test public void replyChannelRetained() { DirectChannel requestChannel = new DirectChannel(); DirectChannel replyChannel = new DirectChannel(); requestChannel.subscribe(new AbstractReplyProducingMessageHandler() { @Override protected Object handleRequestMessage(Message<?> requestMessage) { return requestMessage.getPayload() + "-reply"; } }); MessagingGatewaySupport gateway = new MessagingGatewaySupport() { }; gateway.setRequestChannel(requestChannel); gateway.setBeanFactory(mock(BeanFactory.class)); gateway.afterPropertiesSet(); Message<?> message = MessageBuilder.withPayload("test") .setReplyChannel(replyChannel).build(); Message<?> reply = gateway.sendAndReceiveMessage(message); assertEquals("test-reply", reply.getPayload()); assertEquals(replyChannel, reply.getHeaders().getReplyChannel()); }
@Test public void errorChannelRetained() { DirectChannel requestChannel = new DirectChannel(); DirectChannel errorChannel = new DirectChannel(); requestChannel.subscribe(new AbstractReplyProducingMessageHandler() { @Override protected Object handleRequestMessage(Message<?> requestMessage) { return requestMessage.getPayload() + "-reply"; } }); MessagingGatewaySupport gateway = new MessagingGatewaySupport() { }; gateway.setRequestChannel(requestChannel); gateway.setBeanFactory(mock(BeanFactory.class)); gateway.afterPropertiesSet(); Message<?> message = MessageBuilder.withPayload("test") .setErrorChannel(errorChannel).build(); Message<?> reply = gateway.sendAndReceiveMessage(message); assertEquals("test-reply", reply.getPayload()); assertEquals(errorChannel, reply.getHeaders().getErrorChannel()); }
@Test public void validateErrorChannelWithSuccessfulReply() throws InterruptedException { DirectChannel reqChannel = new DirectChannel(); reqChannel.subscribe(message -> { throw new RuntimeException("ooops"); }); PublishSubscribeChannel errorChannel = new PublishSubscribeChannel(); MyOneWayErrorService myOneWayErrorService = new MyOneWayErrorService(); ServiceActivatingHandler handler = new ServiceActivatingHandler(myOneWayErrorService); handler.setBeanFactory(this.applicationContext); handler.afterPropertiesSet(); errorChannel.subscribe(handler); this.messagingGateway = new MessagingGatewaySupport() { }; this.messagingGateway.setRequestChannel(reqChannel); this.messagingGateway.setErrorChannel(errorChannel); this.messagingGateway.setReplyChannel(null); this.messagingGateway.setBeanFactory(mock(BeanFactory.class)); this.messagingGateway.afterPropertiesSet(); this.messagingGateway.start(); this.messagingGateway.send("hello"); assertTrue(myOneWayErrorService.errorReceived.await(10, TimeUnit.SECONDS)); }
@Test(expected = MessagingException.class) public void validateErrorMessageCanNotBeReplyMessage() { DirectChannel reqChannel = new DirectChannel(); reqChannel.subscribe(message -> { throw new RuntimeException("ooops"); }); PublishSubscribeChannel errorChannel = new PublishSubscribeChannel(); ServiceActivatingHandler handler = new ServiceActivatingHandler(new MyErrorService()); handler.setBeanFactory(this.applicationContext); handler.afterPropertiesSet(); errorChannel.subscribe(handler); this.messagingGateway = new MessagingGatewaySupport() { }; this.messagingGateway.setRequestChannel(reqChannel); this.messagingGateway.setErrorChannel(errorChannel); this.messagingGateway.setReplyChannel(null); this.messagingGateway.setBeanFactory(this.applicationContext); this.messagingGateway.afterPropertiesSet(); this.messagingGateway.start(); this.messagingGateway.sendAndReceiveMessage("hello"); }