@Override
    public Predicate createPredicate(Expression source, String expression, Object[] properties) {
        return doCreateJsonPathExpression(source, expression, properties, true);
    }
@Test
    public void testPredicate() {
        // Test books.json file
        Exchange exchange = new DefaultExchange(context);
        exchange.getIn().setBody(new File("src/test/resources/books.json"));

        Language lan = context.resolveLanguage("jsonpath");
        Predicate pre = lan.createPredicate("$.store.book[?(@.price < 10)]");
        boolean cheap = pre.matches(exchange);
        assertTrue(cheap, "Should have cheap books");

        pre = lan.createPredicate("$.store.book[?(@.price > 30)]");
        boolean expensive = pre.matches(exchange);
        assertFalse(expensive, "Should not have expensive books");
    }