GlueX Web Application Framework Overview

GlueX Web Application Framework is a set of Java libraries, tools and best practices simplifying building of Java web applications for standard servlet containers that support Sun Java(TM) Servlet Specification version 2.2 or later. The main principle of GlueX is clear separation between application logic, state and presentation. Application model exposes its state in XML that is transformed to presentation (HTML or other markup language) with XSL transformation. Controller consists of set of “action” classes that are similar to actions in well-known Struts framework.

Some of key features of GlueX are:

•	Model-View-Controller and component architecture compliance

Model state is monitored by set of XML generators. XML filtering mechanism allows retrieving only necessary parts of XML content for building of each particular screen. Controller is represented by set of application actions – classes that handle user requests and updates model state. View is organized as set of XSL and configuration files.

•	Separation of application actions from screen flow

Action can return one of predefined exit codes (action cases). Based on this code and information from configuration files GlueX decides what screen must be generated and presented to user after this action processing.

•	Built-in request parameters validation

Validation mechanism ensures that programmer will receive only valid set of request parameters. Programmer needs to declare what validator class will be used for particular request parameter. GlueX have validators for all primitive types, String, Date and File data types, and some other useful parameter types, such as URL or email address. Custom validators can extend standard validator set.

•	Built-in multipart request handling

GlueX encapsulates parsing of "multipart/form-data" HTTP requests. Uploaded files are stored in temporary directory and can be accessed as request parameters with File type.

•	ACL security system

Application resources (screens and actions) are protected by ACL security mechanism. User can view particular screen or perform particular action only if he has appropriate permissions. Standard security manager controlled by security configuration files can be replaced with application specific security manager if application requires more flexible control, such as database-driven permissions. 

•	Consistent handling of expired user sessions

GlueX view and controller configuration files allow to define screen or action where user browser is redirected if screen or action was accessed from new or expired user session. This solves session expiration problem on configuration files level without affecting of other application code. 

•	HTTP form reflection (echo) mechanism

Special XML generator outputs request parameters values into XML. This allows pre-filling of fields in HTTP forms when form submission failed and application offers user to correct some of form fields. Field values entered by the user on previous attempt are easily preserved.

•	Multiple inheritable web designs and internationalization

GlueX application may have more than one user presentation (web design). Design can inherit from (extend) other design by replacing some of design files. Other files are “inherited” from the parent design. This feature simplifies maintenance of complex design trees and especially useful in ASP (Application Service Provider) solutions when generic designs may be customized by clients. It also may be used in multilingual internationalized web sites.

•	Automatic generation of action documentation and action errors message resources with support for internationalization

Information about application actions automatically retrieved from action classes and presented in HTML similar to JavaDoc. It describes actions, action cases, possible action errors, expected parameters and their ranges and so forth. This documentation may be used as artifact for communication between Java and XSLT developers.

•	Plug-in system

GlueX web application can be splitted into several independent modules. Modules consist of jar file and an entry in the main application configuration file. New functionality can be added to the system as separate module. GlueX plug-in system allows creating of more robust, modular application architectures.

Please contact: info@javarealm.com for more information on GlueX Web Application Framework.