Calyxo Base Concepts

Calyxo itself follows a component based approach. This means, parts of Calyxo may be used alone. For example, the Calyxo Panels and Calyxo Forms components may be used with Struts. However, all Calyxo components share some common concepts and features, implemented in the Calyxo Base component.

The Calyxo Base component collects some of the basic, reusable classes used throughout all the other subprojects. It introduces basic concepts like modules, i18n, accessors and so on...


Calyxo supports the concept of modules. An application is composed of modules, which, in principle, are independent from each other but may choose to share code and data in several ways.

The Calyxo Base component introduces modules on a high level by defining an abstract module context which grants access to the module's name, scope and initialization parameters, as well as transforming an action path to a context-relative path. Just enough, to get other frameworks, like Struts, on board...


At the lower end, localizing views requires looking up resources and formatting message in a locale dependent manner. A resource is identified by a bundle name and a resource key. Other Calyxo components provide higher level features such as localized views and forms.


Calyxo components are configured by XML files, which all share common abilities, such as importing other configuration files, defining variables, using JSP EL expressions, storing objects, etc. This leads to high expressive configuration formats and unifies basic features across the platform, thus simplifying their use. The Calyxo Base component provides an API used by other components to participate in that.


Calyxo propagates extensive use of JSP EL and JSTL in views instead of implementing custom tags for every beep and whistle. Calyxo Base supports this approach by introducing accessors, that present themselves as a hierarchy of beans and maps, ready to be used in EL expressions.

Beside implementing various concrete accessors, the Calyxo Base component provides an API, which may be used by applications to contribute their own accessors.