Aranea is an Open-Source Java MVC Web Framework that provides a common Object-Oriented approach to building the web applications, reusing GUI logic and extending the framework. It comes with out-of-the-box support for nested flows and database-backed query browsing. Additionally it serves as an integration platform, allowing free intermingling of arbitrary frameworks, components and applications.
An Object-Oriented Framework
Aranea provides a component model, which is based on static types and usual Java objects, and facilitates Object-Oriented design to achieve a high level of maintainability and reuse. The component model enables building the application around well-known Object-Oriented design patterns and idioms, manipulating common stateful objects and leaving contract enforcement to the compiler.
A Web Framework Integration Platform
Aranea integrates with the most prominent web frameworks, giving a way to assemble a collection of sub-applications developed using various web frameworks into a coherent whole. It serves as glue, providing application structure and navigation, while allowing to use any of the supported third-party frameworks for component implementation. One of our goals is to allow step-by-step migration from a legacy framework, by encapsulating the legacy application parts into Aranea components and mixing them with the newly developed ones, rewriting only if the need comes.
Complex Structure and Navigation
If your applications have a navigational structure that does not fit in the web page abstraction (e.g. nested flows, wizards, dependent subcomponents, etc) then Aranea is a solid choice. Every navigational mechanism is implemented as a usual component, so supporting new ones is very easy. For example flows run in a flow container component, which supports e.g. running several parallel processes on one page without any hustle.
Database-backed Query Browsing
Aranea includes generic pageable, orderable and filterable tables that are programmed declaratively and select only the displayed item set from the database by generating backend SQL. This allows browsing queries that contain even hundreds of thousands entries without using up application server memory.
Complex Data Input
When user input does not map well to static data beans (e.g. the model is dynamic or has complex dependencies) Aranea provides a powerful solution, since Aranea forms are based on components as opposed to submit methods.