package uk.nhs.kch.rassyeyanie.framework.processor; import org.apache.camel.Exchange; import org.apache.camel.Processor; import org.apache.commons.lang.StringUtils; public class IcmAckPreprocessor implements Processor { // fix icm acks which contain multiline error messages @Override public void process(Exchange exchange) throws Exception { String message = exchange.getIn().getBody(String.class); message = message.replace("\n", ""); StringBuilder outputMessage = new StringBuilder(); for (String line : StringUtils.split(message, '\r')) { if (line.length() > 3 && line.charAt(3) == '|' && outputMessage.length() > 0) { outputMessage.append('\r'); } else if (outputMessage.length() > 0) { outputMessage.append("\\.br\\"); } outputMessage.append(line); } exchange.getIn().setBody(outputMessage); } }