Details

    • Type: New Feature New Feature
    • Status: In Progress
    • Priority: Major Major
    • Resolution: Unresolved
    • Affects Version/s: 1.4
    • Fix Version/s: 2.4.0-RC1
    • Component/s: core
    • Labels:
      None
    • Environment:
      Target Click 1.5

      Description

      I have been following both OGNL and MVEL (another expression language) development the last couple of months. If we are going to make changes to this here are some things you might find interesting:

      • OGNL 2.7.1 which is included in tapestry 4.1, now sports byte code enhancement. This was added by one of the tapestry authors to make OGNL much faster than its reflection mode. However in my testing 2.7.1 threw exceptions every now and then. So still buggy.
      • MVEL (http://mvel.codehaus.org/) seems like a good replacement for OGNL. It has good docs and is actively developed. They even fixed a bug I logged! Like OGNL, MVEL also runs in two modes, either reflection or byte compiled. Unlike OGNL, MVEL's reflection mode is faster than Click's reflection mode.

      I am no expert on this but according to the article below (from MVEL's author), byte code enhancement have some problems in that generated classes accumulate in java's perm space and will only be removed when their classloader is removed.
      http://artexpressive.blogspot.com/2007/07/mvel-by-numbers-real-story.html

      So MVEL in reflection mode looks like an ideal solution here. The power of OGNL with the performance of Click reflection.

      Table columns can again take advantage of expressions. For example to aggregate a total for the row -> new Column("price * tax");

      1. ASF.LICENSE.NOT.GRANTED--expression-language-performance.rar
        5 kB
        Bob Schellink
      2. ASF.LICENSE.NOT.GRANTED--expression-language-performance.zip
        5 kB
        Bob Schellink
      3. mvel.zip
        1 kB
        Gilberto C Andrade
      4. patch.diff
        2 kB
        Gilberto C Andrade

        Activity

        Gilberto C Andrade made changes -
        Comment [ I'm getting this RunTimeException: No Context available on ThreadLocal Context Stack while building the framework. The fix is to add the following statement in some test files:
        MockContext context = MockContext.initContext(); ]
        Gilberto C Andrade made changes -
        Attachment patch.diff [ 12578009 ]
        Gilberto C Andrade made changes -
        Attachment patch.diff [ 12577893 ]
        Gilberto C Andrade made changes -
        Attachment patch.diff [ 12577893 ]
        Malcolm Edgar made changes -
        Status Open [ 1 ] In Progress [ 3 ]
        Malcolm Edgar made changes -
        Assignee Bob Schellink [ sabob ] Malcolm Edgar [ medgar ]
        Gilberto C Andrade made changes -
        Attachment mvel.zip [ 12521390 ]
        Malcolm Edgar made changes -
        Summary Evaluate replacing OGNL with MVEL Replacing OGNL with MVEL
        Fix Version/s 2.3.1 [ 12316327 ]
        Henri Yandell made changes -
        Project Import Fri Mar 20 14:11:32 PDT 2009 [ 1237583492744 ]
        Bob Schellink made changes -
        Fix Version/s 1.5 M3 [ 10030 ]
        Bob Schellink made changes -
        Fix Version/s 1.5 M3 [ 10030 ]
        Fix Version/s 1.5 M2 [ 10022 ]
        Bob Schellink made changes -
        Fix Version/s 1.5 M1 [ 10010 ]
        Fix Version/s 1.5 M2 [ 10022 ]
        Bob Schellink made changes -
        Fix Version/s 1.5 [ 10010 ]
        Affects Version/s 1.4 [ 10011 ]
        Bob Schellink made changes -
        Attachment expression-language-performance.zip [ 10340 ]
        Bob Schellink made changes -
        Attachment expression-language-performance.rar [ 10339 ]
        Malcolm Edgar made changes -
        Field Original Value New Value
        Environment Target Click 1.4 Target Click 1.5
        Bob Schellink created issue -

          People

          • Assignee:
            Malcolm Edgar
            Reporter:
            Bob Schellink
          • Votes:
            2 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

            • Created:
              Updated:

              Development