\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
