Chapter 1. Introduction

1.1. Overview

Aranea is a Java Hierarchical Model-View-Controller Web Framework that provides a common simple approach to building the web application components, reusing custom or general GUI logic and extending the framework. The framework is assembled from a number of independent modules with well-defined responsibilities and thus can be easily reconfigured to perform new and unexpected tasks. The controller is separated into a hierarchy of components that can react to user or system events. The framework is completely view agnostic, but provides a thorough library of JSP custom tags that target building GUIs without writing a line of HTML. All components and modules are simple Plain Old Java classes without any XML mappings and thus usual Object-Oriented design techniques can be applied. Aranea manages the component field persistence automatically and inherently supports nested state.

Aranea is logically separated in the following modules:

Aranea Core
Contains the core interfaces and base implementations that define Aranea base abstractions and their contracts. Includes packages org.araneaframework and org.araneaframework.core and is packaged into aranea-core.jar.
Aranea Framework
Framework module sits on top of the Core module and contains the implementation of the Aranea Web Framework that does not directly depend on any container. Framework module includes package org.araneaframework.framework and its subpackages and is packaged into aranea-framework.jar.
Aranea HTTP
HTTP module extends the Framework module with services that use a Servlet container. Servlet module includes package org.araneaframework.http and its subpackages and is packaged into aranea-servlet.jar.
Aranea Integration
Spring module integrates Aranea with the Spring IoC container. Spring module includes package org.araneaframework.integration.spring and its subpackages and is packaged into aranea-spring.jar.
Aranea UiLib
UiLib module contains reusable GUI widgets and supporting API. UiLib module includes package org.araneaframework.uilib and its subpackages and is packaged into aranea-uilib.jar.
Aranea JSP
JSP module contains a custom tag library, including tags that render UiLib widgets. JSP module includes package org.araneaframework.jsp and its subpackages and is packaged into aranea-jsp.jar.
Aranea Backend
Backend module contains supporting classes that are to be used in the application service layer (e.g. backend list data provider helper classes). Backend module includes package org.araneaframework.backend and its subpackages and is packaged into aranea-backend.jar.

These modules depend on each other as follows:

1.2. Organization

The rest of this manual is organized as follows:

Components, Widgets and Services

This chapter describes the core Aranea abstractions in detail generally not necessary to just develop application code so it can be skipped during the first reading. It is quite dry on the examples, but its understanding is crucial to develop Aranea extensions. To get a quick understanding of how to program with widgets read Section 2.7, “Application Widgets”.

Framework and Configuration

This chapter describes how to assemble and configure both applications and the Aranea framework itself. It also describes in detail main components of the Aranea framework. The most interesting part for a beginner would be Section 3.2, “Application Configuration”.

JSP and Custom Tags
This chapter describes how to render Aranea widgets and services with custom JSP tag library supplied in the Aranea distribution.
Forms and Data Binding

This chapter describes how Aranea manages reading data from request, validating and converting it to the model objects.

Lists and Query Browsing

This chapter describes how to make pageable, filterable and orderable tables in Aranea.

Uilib widgets

This chapter looks at various other Uilib widgets and explains their use.

Third-party Integration

This chapter describes Aranea integration hooks for third-party toolkits and frameworks. At the moment it includes Spring.

Javascript Libraries

This chapter describes the Javascript libraries that Aranea uses and the Javascript API that Aranea provides.