Uploaded image for project: 'Camel'
  1. Camel
  2. CAMEL-1567

Upgrading to JUEL 2.1.1 - Beware of API changes in JUEL

    XMLWordPrintableJSON

Details

    • Task
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 1.6.0, 2.0-M1
    • 2.1.0
    • camel-juel
    • None

    Description

      Hi Claus,
      Here is an explanation of the API change from Christopher Beck at JUEL:

      Hello Yogesh,

      the API to resolve methods has changed in 2.1.1. Camel's method resolver
      is breaks with JUEL 2.1.1. Generally, methods are still resolved via
      ELResolver.getValue(context, base, property), but

      • in 2.1.0, the method name was passed as a property
      • in 2.1.1, an instance of de.odysseus.el.misc.MethodInvocation is passed
        as a property
        The reason for this is to provide more detailed information about the
        method invocation to the resolver (i.e the method name, number of arguments
        and whether vararg calls are supported).

      Now, camel-juel uses its BeanAndMethodELResolver to resolve methods.
      There, findMethod(context, base, property) only handles a property
      parameter of type string. That's why it doesn't work. When migrating to
      juel 2.1.1, the BeanAndMethodELResolver class needs to be updated to work
      with MethodInvocation objects as properties.

      The JUEL 2.1.1 distribution contains a sample resolver. Taking the sample
      code, updating camel's resolver should be pretty straightforward. When
      doing so, you may also want to add property "javax.el.varArgs" in
      JuelExpression.populateDefaultExpressionProperties(..). That way you would
      take real profit by invoking vararg methods from within EL expressions.

      There's also a way to quickly modify your resolver to work with both, JUEL
      2.1.0 and 2.1.1. Just don't ask for "property instanceof String" but use
      property.toString() as a candidate method name: the MethodInvocation's
      toString() will answer the method name.

      See nabble:
      http://www.nabble.com/Camel-JUEL-expression-weirdness-in-1.6.0-td23177119s22882.html

      Attachments

        Activity

          People

            hadrian Hadrian Zbarcea
            davsclaus Claus Ibsen
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: