\u001B[1mSYNOPSIS\u001B[0m
    ${project.description}

    Original Maven URL:
        \u001B[33mmvn:${pkgGroupId}/${pkgArtifactId}/${pkgVersion}\u001B[0m

\u001B[1mDESCRIPTION\u001B[0m
    JEXL is a library intended to facilitate the implementation of dynamic and scripting features in
    applications and frameworks.

    It is a small footprint "glueing" API - the core features fit in 3 classes and 10 methods - that can be used
    in various conditions:

        * Module or component configuration:
            o Your application has configuration files (eventually generated by a design module) consumed by the
              end-user module that would benefit from variables and expressions.
            o When it would be convenient to use IOC but overall complexity doesn't require (or can't depend upon)
              a full-blown library (Spring, Guice...).
        * Loose-coupling of interfaces and implementations or duck-typing:
            o You have optional classes that your code cant consider as compilation dependencies.
            o You have to integrate and call "legacy" code or use components that you dont want to strongly depend
              upon.
        * Basic scripting features:
            o Your application lets (advanced) users evaluate or define some simple expressions like computation
              formulas.
        * Simple template capabilities:
            o Your application has basic template requirements and JSPs or Velocity would be overkill or too
              inconvenient to deploy.

    Its name stands for Java EXpression Language, a simple expression language inspired by Apache Velocity and
    the Expression Language defined in the JavaServer Pages Standard Tag Library version 1.1 (JSTL) and
    JavaServer Pages version 2.0 (JSP). JEXL 2.0 adds features inspired by Unified EL.

    The API and the expression language exploit Java-beans naming patterns through introspection to expose
    property getters and setters. It also considers public class fields as properties and allows to invoke any
    accessible method.

    JEXL attempts to bring some of the lessons learned by the Velocity community about expression languages in
    templating to a wider audience. Commons Jelly needed Velocity-ish method access, it just had to have it.

    It must be noted that JEXL is not a compatible implementation of EL as defined in JSTL 1.1 (JSR-052) or
    JSP 2.0 (JSR-152). For a compatible implementation of these specifications, see the Commons EL project.

\u001B[1mSEE ALSO\u001B[0m
    \u001B[36mhttp://commons.apache.org/jexl/\u001B[0m
