2012-04-11 4 views
-1

Ich muss testen, ob das Prädikatobjekt dem Austausch für verschiedene Ausdruckssprachen entspricht. Ich muss wissen, welchen Tauschwert ich für die Validierung des Prädikats setzen muss.Wie Exchange-Text festgelegt wird, wenn Apache Camel verwendet wird JXPath-Ausdruckssprache

public void test() { 
    String expression="//orders/value>10"'; 
    CamelContext context = new DefaultCamelContext(); 
    Predicate predicate=new JXpathExpression(expression,boolean.class); 
    Exchange exchange = new DefaultExchange(context); 
    Message in = exchange.getIn(); 
    in.setBody(""); // how i need to set the message in exchange in order to evaluate it against predicate 
    exchange.setIn(in); 
    boolean check=predicate.matches(exchange); 
} 

Für JXPath das Prädikat-Objekt enthält JXpath[//orders/value>10], wenn ich es predicate.toString() mit drucken.

Wie stelle ich den Austausch so ein, dass dieser Ausdruck validiert werden kann?

+0

Auch auf Camel Benutzer Mailing-Liste veröffentlicht: http://camel.465427.n5.nabble.com/Expression-Language-exchange-test-td5633420.html –

Antwort

2

JXPath arbeitet mit Java-Objekten. Sie müssen also ein geeignetes Objekt im Nachrichtentext festlegen. Wenn das Objekt, das Sie dort festgelegt haben, o.getOrders(). GetValue() hat und einen numerischen Wert> 10 zurückgibt, sollte das Prädikat zu true ausgewertet werden.

Verwandte Themen