try { delayValue = this.delayExpression.getValue(this.evaluationContext, delayedMessageWrapper != null ? delayedMessageWrapper.getOriginal() : message);
/** * Checks if 'requestMessage' wasn't delayed before ({@link #releaseMessageAfterDelay} * and {@link DelayHandler.DelayedMessageWrapper}). Than determine 'delay' for * 'requestMessage' ({@link #determineDelayForMessage}) and if {@code delay > 0} * schedules 'releaseMessage' task after 'delay'. * @param requestMessage - the Message which may be delayed. * @return - {@code null} if 'requestMessage' is delayed, otherwise - 'payload' from * 'requestMessage'. * @see #releaseMessage */ @Override protected Object handleRequestMessage(Message<?> requestMessage) { boolean delayed = requestMessage.getPayload() instanceof DelayedMessageWrapper; if (!delayed) { long delay = determineDelayForMessage(requestMessage); if (delay > 0) { releaseMessageAfterDelay(requestMessage, delay); return null; } } // no delay return delayed ? ((DelayedMessageWrapper) requestMessage.getPayload()).getOriginal() : requestMessage; }
Message<String> original1 = (Message<String>) ((DelayHandler.DelayedMessageWrapper) payload).getOriginal(); messageInStore = iterator.next(); Message<String> original2 = (Message<String>) ((DelayHandler.DelayedMessageWrapper) messageInStore.getPayload()) .getOriginal(); assertThat(message1, Matchers.anyOf(Matchers.is(original1), Matchers.is(original2)));
try { delayValue = this.delayExpression.getValue(this.evaluationContext, delayedMessageWrapper != null ? delayedMessageWrapper.getOriginal() : message);
/** * Checks if 'requestMessage' wasn't delayed before ({@link #releaseMessageAfterDelay} * and {@link DelayHandler.DelayedMessageWrapper}). Than determine 'delay' for * 'requestMessage' ({@link #determineDelayForMessage}) and if {@code delay > 0} * schedules 'releaseMessage' task after 'delay'. * @param requestMessage - the Message which may be delayed. * @return - {@code null} if 'requestMessage' is delayed, otherwise - 'payload' from * 'requestMessage'. * @see #releaseMessage */ @Override protected Object handleRequestMessage(Message<?> requestMessage) { boolean delayed = requestMessage.getPayload() instanceof DelayedMessageWrapper; if (!delayed) { long delay = determineDelayForMessage(requestMessage); if (delay > 0) { releaseMessageAfterDelay(requestMessage, delay); return null; } } // no delay return delayed ? ((DelayedMessageWrapper) requestMessage.getPayload()).getOriginal() : requestMessage; }
assertEquals(message1, ((DelayHandler.DelayedMessageWrapper) payload).getOriginal());
assertEquals(message1, ((DelayHandler.DelayedMessageWrapper) payload).getOriginal());
assertEquals(message1, ((DelayHandler.DelayedMessageWrapper) payload).getOriginal());