> Yes..there is a comma...
> 
> The message that would be returned from a processor Call in the route
> would be like this:
> [<Cat xmlns="http://www.openapplications.org/oagis/9";
> xmlns:lw="http://www.org/oagis/9";>
>     <name>Cat1</name>
> </Cat>,
> <Dog xmlns="http://www.openapplications.org/oagis/9";
> xmlns:lw="http://www.org/oagis/9";>
>     <name>Dog1</name>
> </Dog>]

Maybe this helps ...


Jan


public class Split2Test extends CamelTestSupport {

    @Test
    public void animals() throws InterruptedException {
        String xml = "<Cat xmlns=\"http://www.openapplications.org/oagis/9\";
xmlns:lw=\"http://www.org/oagis/9\";>"
                   + "    <name>Cat1</name>"
                   + "</Cat>,"
                   + "<Dog xmlns=\"http://www.openapplications.org/oagis/9\";
xmlns:lw=\"http://www.org/oagis/9\";>"
                   + "    <name>Dog1</name>"
                   + "</Dog>";
        getMockEndpoint("mock:dog").expectedMessageCount(1);
        getMockEndpoint("mock:dog").expectedMessagesMatches(nameIs("Dog1"));
        getMockEndpoint("mock:cat").expectedMessageCount(1);
        getMockEndpoint("mock:cat").expectedMessagesMatches(nameIs("Cat1"));
        
        template.sendBody("direct:in", xml);
        
        assertMockEndpointsSatisfied();
    }
    
    private Predicate nameIs(final String name) {
        return new Predicate() {
            @Override
            public boolean matches(Exchange exchange) {
                return
exchange.getIn().getBody(String.class).contains("<name>" + name +
"</name>");
            }
        };
    }

    @Override
    protected RouteBuilder createRouteBuilder() throws Exception {
        return new RouteBuilder() {
            @Override
            public void configure() throws Exception {
                from("direct:in")
                    .split(body(String.class).tokenize(","))
                    .choice()
                        .when(simple("${body} contains
'Cat'")).to("mock:cat")
                        .when(simple("${body} contains
'Dog'")).to("mock:dog")
                        .otherwise().to("mock:unknown");
            }
        };
    }
}

Reply via email to