TheSpring Frameworkprovides solutions to many technical challenges faced by Java developers and organizations wanting to create applications based on the Java platform. Because of the size and complexity of the functionality offered, it can be hard to distinguish the major building blocks from which the framework is composed. The Spring Framework is not exclusively linked to the Java Enterprise platform, although its far-reaching integration in this area is an important reason for its popularity.

The Spring Framework is probably best known for offering features required to create complex business applications effectively outside of the programming models which have been dominant historically in the industry. Next to that, it is also credited for introducing previously unfamiliar functionalities into today's mainstream development practices, even beyond the Java platform.

This amounts to a framework which offers a consistent model and makes it applicable to most application types created on top of the Java platform.

Modules

The spring Framework can be considered as a collection of smaller frameworks. Most of these frameworks are designed to work independently of each other yet provide better functionalities when used together. These frameworks are divided along the building blocks of typical complex applications:

Doff is a lightweight Open Source J2EE toolkit that provides mapping between actions (servlets) and URLs without writing XML or any configuration file. Doff uses Java 5 annotations and offers many features.

MDARAD™ is an open source modeling tool that generates web applications under simple servlet containers or, alternatively, in J2EE containers. It uses the dataïsland™ (www.dataisland.org) platform independent modeling (PIM) specifications. The generated application is packaged and built in order to facilitate user customizations to the generated code and implements many of the J2EE core design patterns.
Some of the generated features are:

* Struts JSP Tiles and actions to manage web layer
* Persistence Facades using Hibernate
* XML Serialization Services
* ReST and SOAP Web Services
* Lucene Full Text Search Facades
* JUNIT Tests
The MDARAD J2EE webapp project is divided in three components:
* mdarad-framework: collection of interfaces, utilities and abstract classes used by the generated web application.
* andromda-webapp: the cartridge used to generate the application.
* mdarad-genapp: the development environment generator and manager. This is where you generate your project and control what will be generated or not.
MDARAD also has a vision to allow ontology communications based on web semantics and ontology alignment.

Jspresso is a new generation framework to easily build professional quality java distributed desktop applications. Jspresso dramatically reduces the development cycles needed to get your business application up and running while not sacrificing quality, robustness and performance. Jspresso is not another webapp framework. Jspresso based applications offer the exact same ergonomics as desktop applications while keeping an N-tier centralized architecture.
Jspresso covers extensively the whole software architecture and relieves the developer from all the plumbing by solving most of the technical concerns. Jspresso philosophy extends the "Convention over configuration" paradigm with a descriptive strategy made of assembling built-in descriptors (java beans). You describe what you want to achieve and not how you want to achieve it.

OpenEnterpriseX is a free, open source, comprehensive and standards-based Java(TM)/J2EE(TM) development suite distribution for building enterprise applications. It is based on leading Open Source web servers, containers, frameworks, utilities, database and integrated development editor. The distribution will not in any way hinder your usage of any of the open source packages individually. Instead, it serves to help you use the packages easily.

Atomikos TransactionsEssentials™ is a premium transaction manager for automatic cancelation of problematic transactions, across disparate datasources or back-end systems. Unlike CICS™ (IBM, mainframe) or Tuxedo™ (Bea, workstations), this product is optimized for easy integration into Java™-based solutions: it has a very small memory footprint and seamless compatibility with virtually every Java™ application. Integration into your application can be as simple as one line of code.

jWebApp is a J2EE Servlet-based Model-View-Controller framework that allows you to use anything you like for the Model and View.
jWebApp allows independence in model and view technologies. You can use any model/business layer technologies, any database-access technologies, any web-authoring technologies, and plain old HTML and HTML forms.