/**
   * Asserts that the given language name and predicate expression evaluates to the expected value
   * on the message exchange
   */
  protected void assertPredicate(
      String languageName, String expressionText, Exchange exchange, boolean expected) {
    Language language = assertResolveLanguage(languageName);

    Predicate predicate = language.createPredicate(expressionText);
    assertNotNull(
        "No Predicate could be created for text: " + expressionText + " language: " + language,
        predicate);

    assertPredicate(predicate, exchange, expected);
  }
  public Predicate getRetryWhilePolicy(CamelContext context) {
    Predicate answer = getRetryWhile();

    if (getRetryWhileRef() != null) {
      // its a bean expression
      Language bean = context.resolveLanguage("bean");
      answer = bean.createPredicate(getRetryWhileRef());
    }

    return answer;
  }