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

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

\u001B[1mDESCRIPTION\u001B[0m
    JUEL is an implementation of the Unified Expression Language (EL), specified as part of the JSP 2.1 standard
    (JSR-245), which has been introduced in JEE5. Additionally, JUEL 2.2 implements the JSP 2.2 maintenance release
    specification for full JEE6 compliance.

    JUEL provides a lightweight and efficient implementation of the Unified Expression Language.

        * High Performance – Parsing expressions is certainly the expected performance bottleneck. JUEL uses a
          hand-coded parser which is up to 10 times faster than the previously used (javacc) generated parser!
          Once built, expression trees are evaluated at highest speed.
        * Pluggable Cache – Even if JUELs parser is fast, parsing expressions is relative expensive. Therefore, it's
          best to parse an expression string only once. JUEL provides a default caching mechanism which should be
          sufficient in most cases. However, JUEL allows to plug in your own cache easily.
        * Small Footprint – JUEL has been carefully designed to minimize memory usage as well as code size.
        * Method Invocations – JUEL supports method invocations as in ${foo.matches('[0-9]+')}. Methods are resolved
          and invoked using the EL's resolver mechanism. As of JUEL 2.2, method invocations are enabled by default.
        * VarArg Calls – JUEL supports Java 5 VarArgs in function and method invocations. E.g., binding
          String.format(String, String...) to function format allows for ${format('Hey s','Joe')}. As of JUEL 2.2,
          VarArgs are enabled by default.
        * Pluggable – JUEL can be configured to be transparently detected as EL implementation by a Java runtime
          environment or JEE application server. Using JUEL does not require an application to explicitly reference
          any of the JUEL specific implementation classes.

\u001B[1mSEE ALSO\u001B[0m
    \u001B[36mhttp://juel.sourceforge.net/\u001B[0m
