I wish I could be there.
I really want to learn more about Ognl.
I will be out of town.

Can you post the slides on the website?


-----Original Message-----
From: Drew Davidson [mailto:[EMAIL PROTECTED]
Sent: Sunday, March 07, 2004 4:46 PM
To: [EMAIL PROTECTED]
Subject: [jug-discussion] OGNL presentation on Tuesday


Everyone,

As you know I'm going to present on OGNL next Tuesday at the JUG
meeting.  I was planning on doing this talk in April so I haven't given
a lot of thought as to what people would be interested in hearing about
OGNL.

OGNL is a very rich framework and there are several aspects to it that
would be of interest, depending on the amount you already know about it.

Here are some possible outlines of interest:

    * OGNL language features
        - it's a binding language, not a mere expression language.
let's get that straight right off the bat.
        - what OGNL does for you that other expression languages also do
        - what OGNL does for you that other expression languages do not
        - property navigation
              + what's a property?
              + what's a "navigation chain"?
        - index access (including the OGNL "object indexed" properties)
applied to properties
              + how objects are index accessible
        - numeric types
        - collection manipulation
             + indexed access (plus dynamic subscripts)
             + projection
             + selection
        - lambda expressions
        - who is using OGNL?
              + Tapestry web application framework
              + WebWork web application framework
              + WebOGNL web application framework
              + JSP 2.0 EL replacement
              + Plug-in for BSF allows everyone to use OGNL
              + Many other silent users
              + If anyone knows of a use of OGNL other than these?  I'd
like to know!

    * OGNL API
       - OgnlContext: the center of attention
       - Set vs. get for expressions
       - OGNL extension API
           + PropertyAccessor (accessing named properties)
           + ElementsAccessor (getting iterations of objects)
           + MethodAccessor (calling instance & static methods)
           + NullHandler (handling null results from property gets and
method calls)
           + TypeConverter (converting between different types)
           + MemberAccess (for lowering protection on normally
inaccessible private, protected and package protected methods, fields, etc.)

    * OGNL 3
          - same OGNL language
          - totally rewritten, cleaner API
             + parser gets it's own package
             + implementations of extensions API now has it's own package
             + org.ognl.el package defines only 2 classes, the rest are
interfaces
             + clearly delineated lines of responsiblity between
Expression implementors (parse tree), Environment, ExecutionEnvironment
and Extensions.
             + type conversion is now integral to all aspects of
expression evaluation
          - new package names: org.ognl.el, org.ognl.el.parser,
org.ognl.el.extensions and org.ognl.util
          - environment interface for registering extensions
          - exposed execution context interface (was OgnlContext, but
the API only showed it as a Map)
             + DefaultExecutionContext implements ExecutionContext to
provide an all-in-one parser, registry and execution context suitable
for simple expression executions
             + DelegatedExecutionContext delegates to a shared
environment so that registry, runtime reflection cache, etc. are shared
          - parse tree now has better structure and clearly defined role
          - exposed Expression class encapsulates parse tree for syntax
analysis
             + defines hierarchy
             + exposes Visitor interface for walking expressions
             + exposes "get" and "set" operations
             + exposes static syntax analysis methods: isConstant,
isSimpleProperty, isSimpleNavigationChain
          - caching (reflection information, etc.) is more manageable
through pluggable Reflector class
          - almost everything is pluggable; most of the classe
          - TypeConverter subsumes NullHandler and now has more robust
ability to handle any conversion
          - all extensions except ClassResolver is now associatable with
a class to facilitate fine-grained customization

    www.ognl.org
          - I thought you were a web developer so why does www.ognl.org
use frames you moron?  are you still living in 1997?
          - replace frames on the OGNL website: why Drew is so lazy
          - getting rid of that awful late-90s-beveled purple look on
www.ognl.org
          - at least the license plates link to the OGNL and WebOGNL license

These are just some suggestions.  Feel free to let me know what you
think would be interesting for me to talk about.

- Drew

--
+---------------------------------+
< Drew Davidson | OGNL Technology >
<     Professional Open Source    >
+---------------------------------+
|  Email: [EMAIL PROTECTED]          /
|    Web: http://www.ognl.org   /
|    Vox: (520) 531-1966       <
|    Fax: (520) 531-1965        \
| Mobile: (520) 405-2967         \
+---------------------------------+



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]






---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to