delayHandler.setOutputChannel((m, t) -> { throw new MessagingException(m); });
@Test public void testRescheduleForTheDateDelay() throws Exception { this.delayHandler.setDelayExpression(new SpelExpressionParser().parseExpression("payload")); this.delayHandler.setOutputChannel(new DirectChannel()); this.delayHandler.setIgnoreExpressionFailures(false); startDelayerHandler();
@Before public void setup() { input.setBeanName("input"); output.setBeanName("output"); taskScheduler = new ThreadPoolTaskScheduler(); taskScheduler.afterPropertiesSet(); delayHandler = new DelayHandler(DELAYER_MESSAGE_GROUP_ID, taskScheduler); delayHandler.setOutputChannel(output); delayHandler.setBeanFactory(mock(BeanFactory.class)); input.subscribe(delayHandler); output.subscribe(resultHandler); }
this.delayHandler.setOutputChannel(output); this.delayHandler.setDefaultDelay(200); this.delayHandler.setMessageStore(messageGroupStore);
@Test //INT-3560 /* It's difficult to test it from real ctx, because any async process from 'inbound-channel-adapter' can't achieve the DelayHandler before the main thread emits 'ContextRefreshedEvent'. */ public void testRescheduleAndHandleAtTheSameTime() { QueueChannel results = new QueueChannel(); delayHandler.setOutputChannel(results); this.delayHandler.setDefaultDelay(10); startDelayerHandler(); this.input.send(new GenericMessage<>("foo")); this.delayHandler.reschedulePersistedMessages(); Message<?> message = results.receive(10000); assertNotNull(message); message = results.receive(50); assertNull(message); }