use of org.apache.camel.Predicate in project camel by apache.
the class LogicalExpression method createAndExpression.
private Expression createAndExpression(final Expression leftExp, final Expression rightExp) {
return new Expression() {
@Override
public <T> T evaluate(Exchange exchange, Class<T> type) {
Predicate predicate = ExpressionToPredicateAdapter.toPredicate(leftExp);
predicate = PredicateBuilder.and(predicate, ExpressionToPredicateAdapter.toPredicate(rightExp));
boolean answer = predicate.matches(exchange);
return exchange.getContext().getTypeConverter().convertTo(type, answer);
}
@Override
public String toString() {
return left + " " + token.getText() + " " + right;
}
};
}
use of org.apache.camel.Predicate in project camel by apache.
the class WhenSkipSendToEndpointDefinition method createPredicate.
@Override
protected Predicate createPredicate(RouteContext routeContext) {
// we need to keep track whether the when matches or not, so delegate
// the predicate and add the matches result as a property on the exchange
final Predicate delegate = super.createPredicate(routeContext);
return new Predicate() {
@Override
public boolean matches(Exchange exchange) {
boolean matches = delegate.matches(exchange);
exchange.setProperty(Exchange.INTERCEPT_SEND_TO_ENDPOINT_WHEN_MATCHED, matches);
return matches;
}
@Override
public String toString() {
return delegate.toString();
}
};
}
use of org.apache.camel.Predicate in project camel by apache.
the class ExpressionDefinition method getLabel.
/**
* Returns some descriptive text to describe this node
*/
public String getLabel() {
Predicate predicate = getPredicate();
if (predicate != null) {
return predicate.toString();
}
Expression expressionValue = getExpressionValue();
if (expressionValue != null) {
return expressionValue.toString();
}
String exp = getExpression();
return exp != null ? exp : "";
}
use of org.apache.camel.Predicate in project camel by apache.
the class XPathTest method assertPredicate.
protected void assertPredicate(String xpath, String xml, boolean expected) {
Predicate predicate = XPathBuilder.xpath(xpath);
assertPredicate(predicate, createExchange(xml), expected);
}
use of org.apache.camel.Predicate in project camel by apache.
the class RouteScopedOnExceptionWithInterceptSendToEndpointIssueWithPredicateTest method testIssue.
public void testIssue() throws Exception {
final Predicate fail = PredicateBuilder.or(header(Exchange.REDELIVERY_COUNTER).isNull(), header(Exchange.REDELIVERY_COUNTER).isLessThan(5));
RouteDefinition route = context.getRouteDefinitions().get(0);
route.adviceWith(context, new RouteBuilder() {
@Override
public void configure() throws Exception {
interceptSendToEndpoint("seda:*").skipSendToOriginalEndpoint().process(new Processor() {
public void process(Exchange exchange) throws Exception {
invoked.incrementAndGet();
if (fail.matches(exchange)) {
throw new ConnectException("Forced");
}
}
}).to("mock:ok");
}
});
getMockEndpoint("mock:global").expectedMessageCount(0);
getMockEndpoint("mock:ok").expectedMessageCount(1);
getMockEndpoint("mock:exhausted").expectedMessageCount(0);
template.sendBody("direct:start", "Hello World");
assertMockEndpointsSatisfied();
// 5 retry + 1 ok
assertEquals(6, invoked.get());
}
Aggregations