private Exchange processResult(final Exchange origExchange, final SplitIndex index, final Object splitPart) throws Exception { final Exchange subExchange = origExchange.copy(); Message message = subExchange.getIn(); message.setBody(splitPart); finalizeSubExchange(origExchange, subExchange, index); super.processNext(subExchange); return subExchange; }
@Override protected void finalizeSubExchange(Exchange origExchange, Exchange subExchange, SplitIndex index) { super.finalizeSubExchange(origExchange, subExchange, index); if (splitOnlyHasSingleResult(index)) { return; } ManagedMessage origMessage = new PlatformMessage(origExchange); SplitHistory origHistory = origMessage.getSplitHistory(); SplitHistory subHistory = origHistory.split(index.getIndex(), index.isLast()); ManagedMessage subMessage = new PlatformMessage(subExchange); subMessage.setSplitHistory(subHistory); }