blob: f86dbb8c2ecea0babcc35bdc85919eb2b9f836b5 [file] [log] [blame]
\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