@Override public Collection<String> determineTargetChannelNames(Integer payload, Map<String, Object> headers) throws InterruptProcessingException { if (payload==0) { throw new InterruptProcessingException("cannot determine for 0!"); } if (payload % 2 == 0) { return Arrays.asList(evenNumbersChannel.getName()); } else { return Arrays.asList(oddNumbersChannel.getName()); } }