This one works for me Jan
import org.apache.camel.EndpointInject; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.component.mock.MockEndpoint; import org.apache.camel.test.junit4.CamelTestSupport; import org.junit.Test; import static org.apache.camel.builder.SimpleBuilder.simple; public class XmlFilterTest extends CamelTestSupport { @EndpointInject(uri="mock:end") MockEndpoint mock; String bodyTemplate = "<MY_LIST><MSG><ID>@id@</ID></MSG><SOURCE>@source@</SOURCE></MY_LIST>"; private void send(String id, String source) { template.sendBody("direct:in", bodyTemplate.replace("@id@", id).replace("@source@", source)); } @Test public void test() throws InterruptedException { mock.expectedMessageCount(2); mock.expectedMessagesMatches( simple("${body} contains 'source1'"), simple("${body} contains 'source1'") ); send("1", "source1"); send("2", "source2"); send("3", "source1"); assertMockEndpointsSatisfied(); } @Override protected RouteBuilder createRouteBuilder() throws Exception { return new RouteBuilder() { @Override public void configure() throws Exception { from("direct:in") .filter().xpath("/MY_LIST/SOURCE/text() = 'source1'") .to("mock:end"); } }; } } > -----Ursprüngliche Nachricht----- > Von: geppo [mailto:geppore...@gmail.com] > Gesendet: Montag, 23. Juni 2014 18:44 > An: dev@camel.apache.org > Betreff: Filter on content of a tag > > Hi, > I have a Camel route that reads from a queue containing XML messages > e.g. > > <MY_LIST> > <MSG> > <ID>1234</ID> > </MSG> > <SOURCE>source1</SOURCE> > ... > > I want to process only messages of type MyList and where SOURCE=source1 > I've written the filter for the check MyList.class and it works fine, > but I don't know how to write the filter that checks the SOURCE tag. > Any idea? > > from(inboundQueue) > .routeId(id) > .filter().body(MyList.class) > .filter().body(MyList.getSource().equals("source1")) <-- Just some > random code! > .unmarshal(jaxb) > .process(myProcessor) > .log("Completed") > > > > > > > -- > View this message in context: http://camel.465427.n5.nabble.com/Filter- > on-content-of-a-tag-tp5752705.html > Sent from the Camel Development mailing list archive at Nabble.com.