How about a simple splitter that removes the duplicates?  For example, a route 
like this
<camelContext xmlns="http://camel.apache.org/schema/spring";>
    <route>
        <from uri="file://src/data?noop=true" />
        <split strategyRef="removeDupsStrategy">
            <tokenize token="\n" />
            <setHeader headerName="MY_KEY">
                <simple>${body}</simple>
            </setHeader>
        </split>
        <log message="complete: ${body}" />
    </route>
</camelContext>

Could use a Splitter like this
public class RemoveDuplicateSplitterStrategry implements AggregationStrategy{
    @Override
    public Exchange aggregate(Exchange oldExchange, Exchange newExchange) {
        Logger log = LoggerFactory.getLogger(this.getClass());

        if ( null == oldExchange ) {
            Map<String, String> messageList = new HashMap<>();
            messageList.put( newExchange.getIn().getHeader("MY_KEY", 
String.class), newExchange.getIn().getBody(String.class) );
            newExchange.getIn().setBody( messageList);
            return newExchange;
        }

        Map<String, String> messageList = oldExchange.getIn().getBody( 
Map.class) ;
        String key = newExchange.getIn().getHeader("MY_KEY", String.class);
        if (messageList.containsKey(key)) {
            String value = messageList.remove(key);
            log.warn( "Removing duplicate for {}: {}", key, value);
        } else {
            messageList.put(key, newExchange.getIn().getBody(String.class) );
        }

        return oldExchange;
    }
}

> On Feb 18, 2016, at 10:17 AM, gilboy <josephoto...@gmail.com> wrote:
> 
> Thanks for the quick feedback. 
> 
> If I use the Idempotent Consumer EIP this would mean that the 2nd order
> (Order cancel) will be filtered out. However, I would want the new order to
> be filtered also. However, that would be sent to the counterparty with the
> Idempotent Consumer EIP
> 
> Regards
> Joe
> 
> 
> 
> --
> View this message in context: 
> http://camel.465427.n5.nabble.com/Apache-Camel-EIP-to-process-batch-of-messages-identifying-those-which-can-be-filtered-tp5777844p5777868.html
> Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to