My favorites | Sign in
Project Logo
                
Search
for
Updated Jan 14, 2009 by bpontarelli
Architecture  
JCatapult architecture

Frameworks

JCatapult is a large amount of glue for a bunch of other frameworks. It also adds functionality on top of those frameworks that is often useful for applications. The functionality that JCatapult adds is never required and can always be removed, ignored or replaced.

The frameworks that JCatapult is currently constructed on top of are:

Framework/Library Function Required
Apache Ant Build (this is used via Savant) Yes
Savant Dependency management and Build Yes
Guice Dependency injection No
JPA via Hibernate ORM No
JavaMail Email No
FreeMarker MVC views, email, MVC tags No
SiteMesh Template engine No
Commons configuration Configuration Yes
Joda Date time Yes
JUnit Unit testing No

Modules

One of the major features of JCatapult is that it provides a module methodology that allows pieces of functionality to be written in separate projects and then incorporated into JCatapult web applications seamlessly. This module architecture allows modules to define this types of objects:

The beauty of this type of modularization is that it is very simple to define functionality and reuse it across multiple applications.

An example of a module might be a user module. This module might provide these pieces of functionality:

This module can then be added to an existing web application project using a simple ant target and no additional configuration.

Besides support for stand-alone modules, JCatapult also support modules which depend on other modules. For example, there might be a news module that allows admins to add news to a website. This module might use the User class from the user module. JCatapult will handle this dependency and do all the work of database creation, migration, and dependency management.

Conventions

Whenever possible, JCatapult prefers providing good defaults and conventions over configuration. This reduces the amount of configuration required to write applications and reduces maintenance costs considerably.


Sign in to add a comment
Hosted by Google Code