AppFuse

AppFuse is an open-source Java EE web application framework. It is designed for quick and easy start up of development, while also using open-source Java technologies such as Spring framework, Hibernate and Struts. AppFuse was originally created by Matt Raible, who wanted to eliminate the “ramp up” time in building new web applications.

AppFuse provides a project skeleton, similar to the one that’s created by an IDE when one clicks through a “new web project” wizard. AppFuse 1.x uses Ant to create the project, as well as build/test/deploy it, whereas AppFuse 2.x uses Maven 2 for these tasks. IDE support was improved in 2.0 by leveraging Maven plugins to generate IDE project files. AppFuse 1.x uses XDoclet and JDK 1.4+.

Unlike other “new project” wizards, the AppFuse wizard creates a number of additional classes and files that implement features, but also serve as examples for the developer. The project is pre-configured to talk to a database, to deploy in an appserver, and to allow logging in.

When AppFuse was first developed, it only supported Struts and Hibernate. In version 2.x, it supports Hibernate, iBATIS or JPA as persistence frameworks. For implementing the MVC model, AppFuse is compatible with JSF, Spring MVC, Struts 2 or Tapestry.

Features integrated into AppFuse includes the following:

Authentication and AuthorizationUser ManagementRemember Me (saving your login information so you don’t have to login every time)Password ReminderSignup/RegistrationSSL SwitchingE-MailURL rewritingSkinnabilityPage DecorationTemplated LayoutFile Upload

This out-of-the-box functionality is one of the main features in AppFuse that separates it from the other “CRUD Generation” frameworks, including Ruby on Rails and Grails. The aforementioned framework, as well as AppFuse, allow you to create master/detail pages from database tables or existing model objects.

Source