AppFuse
Encyclopedia
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:
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
. AppFuse is similar to Spring Roo
in that both provide rapid productivity solutions for the Java
programming language (whereas Grails and Ruby on Rails focus on other programming languages). The aforementioned frameworks, as well as AppFuse, allow you to create master/detail
pages from database tables or existing model objects.
Web application framework
A web application framework is a software framework that is designed to support the development of dynamic websites, web applications and web services. The framework aims to alleviate the overhead associated with common activities performed in Web development...
. It is designed for quick and easy start up of development, while also using open-source Java technologies such as Spring Framework, Hibernate
Hibernate (Java)
Hibernate is an object-relational mapping library for the Java language, providing a framework for mapping an object-oriented domain model to a traditional relational database...
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
Integrated development environment
An integrated development environment is a software application that provides comprehensive facilities to computer programmers for software development...
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
XDoclet
XDoclet is an open-source code generation library that enables Attribute-oriented programming for Java via insertion of special Javadoc tags. It comes with a library of predefined tags, which simplify coding for various technologies: Java EE, Web services, Portlet etc.-Example:A typical 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
IBATIS
iBATIS is a persistence framework which automates the mapping between SQL databases and objects in Java, .NET, and Ruby on Rails. In Java, the objects are POJOs . The mappings are decoupled from the application logic by packaging the SQL statements in XML configuration files...
or JPA as persistence
Persistence
Persistence may refer to:* Image persistence, in LCD monitors* Multidrug tolerance, a dormant, persistent state of a bacterial population* Persistence , the characteristic of data that outlives the execution of the program that created it...
frameworks. For implementing the MVC model, AppFuse is compatible with JSF
JavaServer Faces
JavaServer Faces is a Java-based Web application framework intended to simplify development integration of web-based user interfaces....
, Spring MVC, Struts 2 or Tapestry
Tapestry (programming)
Apache Tapestry is an open-source component-oriented Java web application framework to implement applications in accordance with the model-view-controller architectural pattern. Tapestry was created by Howard Lewis Ship independently, and was adopted by the Apache Software Foundation as a top-level...
.
Features integrated into AppFuse includes the following:
- AuthenticationAuthenticationAuthentication is the act of confirming the truth of an attribute of a datum or entity...
and AuthorizationAuthorizationAuthorization is the function of specifying access rights to resources, which is related to information security and computer security in general and to access control in particular. More formally, "to authorize" is to define access policy... - User Management
- Remember Me (saving your login information so you don't have to login every time)
- Password Reminder
- Signup/Registration
- SSL Switching
- URL rewriting
- SkinnabilitySkin (computing)In computing, a skin is a custom graphical appearance achieved by the use of a graphical user interface that can be applied to specific software and websites to suit the purpose, topic, or tastes of different users....
- Page Decoration
- Templated Layout
- File 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
Ruby on Rails
Ruby on Rails, often shortened to Rails or RoR, is an open source web application framework for the Ruby programming language.-History:...
and Grails
Grails (Framework)
Grails is an open source web application framework which uses the Groovy programming language . It is intended to be a high-productivity framework by following the "coding by convention" paradigm, providing a stand-alone development environment and hiding much of the configuration detail from the...
. AppFuse is similar to Spring Roo
Spring Roo
Spring Roo is an open source software tool that uses convention-over-configuration principles to provide rapid application development of Java-based enterprise software. The resulting applications use common Java technologies such as Spring Framework, Java Persistence API, Java Server Pages, Apache...
in that both provide rapid productivity solutions for the Java
Java (programming language)
Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...
programming language (whereas Grails and Ruby on Rails focus on other programming languages). The aforementioned frameworks, as well as AppFuse, allow you to create master/detail
Master-detail
In computer user interface design, a master–detail interface displays a master list and the details for the currently selected item.A master area can be a form, list or tree of items, and a detail area can be a form, list or tree of items typically placed either below or next to the master area...
pages from database tables or existing model objects.