Java Development, Recruitment and Consultancy

Open Source Frameworks for Java

Java without the Palaver

There are many Java frameworks to choose from. The list below only covers some of those available. Some deserve special mention and are referenced in the menu bar above. The title to each framework is a link to its home web site and the text is mostly their own for which we can take no responsibility. The more superlatives it contains the less useful it probably is. The links will open in a new window or tab.

Struts

Apache Struts is a free open-source framework for creating Java web applications.

Turbine

Turbine is a servlet-based framework that allows experienced Java developers to build secure web applications quickly. Turbine is an excellent choice for developing applications that make use of a services-oriented architecture. The functionalities provided with Turbine include a security management system, a scheduling service, XML-defined form validation server and an XML-RPC service for web services. It is a simple task to create new services particular to your application.

Tapestry

Tapestry is a powerful, open-source, all-Java framework for creating leading-edge web applications in Java. Tapestry reconceptualises web application development in terms of objects, methods and properties instead of URLs and query parameters. Tapestry is an alternative to scripting environments such as JavaServer Pages or Velocity. Tapestry goes much further, providing a complete framework for creating extremely dynamic applications with minimal amounts of coding.

WebWork

WebWork is a web application framework for J2EE. It is based on a concept called "Pull HMVC" (Pull Hierarchical Model View Controller).

Cocoon

Apache Cocoon is a web development framework built around the concepts of separation of concerns and component-based web development. Cocoon implements these concepts around the notion of 'component pipelines', each component on the pipeline specialising in a particular operation. This makes it possible to use a LegoTM-like approach in building web solutions, hooking together components into pipelines without any required programming.

Spring

Spring is a layered Java/J2EE application framework, based on code published in Expert One-on-One J2EE Design and Development

Maverick

Maverick is a Model-View-Controller (aka "Model 2") framework for web publishing using Java and J2EE. It is a minimalist framework that focuses solely on MVC logic, allowing you to generate presentation using a variety of templating and transformation technologies.

Echo

Echo is a framework for developing object-oriented, event-driven Web applications. Echo removes the developer from having to think in terms of "page-based" applications and enables him/her to develop applications using the conventional object-oriented and event-driven paradigm for user interface development.

SOFIA

SOFIA is the Salmon Open Framework for Internet Applications. Conceptually, SOFIA is similar to other J2EE MVC open-source frameworks such as Apache Struts. But SOFIA sets a new standard for Java development by delivering so much more in a framework matching best-of-breed tools integration with robust JSP class and tag libraries. SOFIA shortens application development time on the strength of its visual development capabilities and pre-built Java components that dramatically simplify coding.

Verge

The Verge Framework is a commercial J2EE application framework written entirely in Java using only the standard J2EE APIs. This project aims to develop and promote a highly flexible and extensible framework for building enterprise applications.

Anvil

Anvil is a Java-based server environment and object-oriented programming language with templating support, being especially well suited to web applications.

Jaffa

Jaffa (Java Application Framework For All) is an enterprise-focused Java framework for rapid application development. It provides a complete Java Web application development stack, extending existing projects such as Tomcat and Struts at the front-end with MVC-based web widgets, all the way through to a high-performance lightweight O/R persistence engine, with plenty of rich features in between including rules engines, declarative application and data security.

Jucas

Jucas is a web-framework that brings together the pull MVC concept with component-orientated design GUI programming.

MyFaces

MyFaces is an implementation of Sun's JavaServerTM Faces (JSF). JSF is a relatively new and upcoming web application framework that accomplishes the MVC paradigm. It is comparable to the well-known Struts Framework but has features and concepts that are beyond those of Struts - especially the component orientation.

WebOnSwing

WebOnSwing is a revolutionary multiple environment application framework that allows you to create web applications in the same way that you develop a desktop one. You do not need to use JSP files, special tags, XML files, requests, posts, etc. Everything is Java and pure HTML files that come directly from the graphic designer. This framework constructs and handles HTML pages with Swing components, allowing you to use MVC architecture and all the facilities provided by Swing in the web.

VRaptor

VRaptor is a web MVC and IoC framework which is based on many frameworks like (JBoss Seam, Stripes, Webwork, Hibernate Annotations etc).

Swinglets

Program your JPS and Servlets like you program your Swing components. Swinglets is a server-side component library that uses an identical design to Swing. Swinglets has look and feels for HTML, Java Script and WML. The Components, Models, Renderers, and LookAndFeels are very similar. It has Swing event handling too. In fact Swinglets actually uses the Swing models (e.g. TableModel). This means you can take your existing models and start working with Servlets straight away. It's just about as close to a standard as you can get without it actually coming from Sun themselves.

Wicket

Wicket is a Java web application framework that takes simplicity, separation of concerns and ease of development to a whole new level. Wicket pages can be mocked up, previewed and later revised using standard WYSIWYG HTML design tools. Dynamic content processing and form handling is all handled in Java code using a Swing-like component model backed by POJO data beans that can easily be persisted with Hibernate.

SwingWeb

Swingweb is a web-application framework that enables AWT/Swing application to operate inside a web container and presented as a web application to the web browser, purely in HTML/CSS/javascript. The swing application will render and behave in the web-container the same as it would as a desktop application.

Barracuda

Barracuda is an Open-Source Presentation Framework (LGPL) designed to make it easier to build web apps by providing a simple yet powerful Server-Side Component Model that makes it easy to manipulate DOM structures using proven MVC patterns like you'd find in Swing. With this newest release, you can now use Jivan in addition to XMLC to load and render your DOM templates.

RIFE

RIFE is a full-stack, open-source Java web application framework, offering fast results with the promise of maintainability and code clarity. Development becomes productive, consistent and reusable.

DWR

DWR is AJAX and XMLHttpRequest made easy. It makes it simple to call Java on the server directly from Javascript in the browser marshalling all the parameters and return values. It gets rid of almost all the boiler plate code between the web browser and your Java code. interaction diagram DWR helps you in producing highly interactive web-sites by providing some Javascript libraries to help with DHTML and by giving you a set of examples to copy from.

JSPWidget

JSPWidget is a JSP Framework that provides event-driven,view state retained,server-side GUI controls to make JSP development as intuitive as in traditional client forms or in client-based Web applications.

JOSSO

JOSSO, or Java Open Single Sign-On, is an open source J2EE-based SSO infrastructure aimed to provide a solution for centralized platform neutral user authentication.

OpenXava

XML / Java Framework to develop J2EE business applications rapidly and easily. It is based in business components defined with XML. Feature rich and flexible since is used for years to create real business applications.

Stripes

Stripes is a Java web framework that makes web development as easy as it should be. It requires zero external configuration beyond the registration of one servlet and one filter. Stripes includes simple yet powerful solutions to common problems such as indexed properties, multi-event forms, localization and use of domain objects in the web tier. All of this in a compact framework with hardly any dependencies!

Click

Click Framework is modern JEE web application framework, providing a natural rich client style programming model. Click is designed to be very easy to learn and use, with developers getting up and running within a day.

ZK

ZK is an AJAX-based, event-driven, XUL-compliant, all Java framework for enabling Web applications to have the rich user experiences. With intuitive event-driven model, you represent your application in feature-rich XUL components, and manipulate these components by listening to events triggered by users, as simple as you did for years in desktop applications. No JavaScript. No replication of business logic at the clients. No proprietary components. No compilation. ZK works with existent frameworks and technologies, such as JSF and Portals, so the pace of adapting it is all under your control.

Caramba

The caramba framework is built from bottom to top with one main goal: creating Responsive, Rich Internet Applications. With the AJAX technology we could already achieve this, but it was hard to debug, error prone and time intensive to make it work. We are sure that simplicity can be achieved by following the event driven architecture: Caramba is 100% event driven, so very, very easy to use. Using Caramba makes it possible to make fancy, responsive web-applications without having to write a single line of JavaScript. You don't need to learn another language. Just the good old java syntax and JSP, that's all you need to know to get started.

wingS

wingS is a web application framework based on Java Servlets, resembling the Swing API with its MVC paradigm and event oriented design principles. It utilizes the models, events, and event listeners of Swing. Like in Swing, components are arranged in a hierarchy of containers, whose root container is hooked to a frame.

Helma

Helma is an open source web application framework for fast and efficient scripting and serving of your websites and Internet applications.

Restlet

Restlet is a framework that brings the simplicity and efficiency of the REST architectural style to Java developers. It is composed of two parts, a neutral API and a reference implementation (Noelios Restlet Engine). It supports all REST concepts (resource, representation, data, connector, components, etc.) and is suitable for both client and server REST applications. The server connectors provided are HTTP (via Mortbay's Jetty or an adapter Servlet) and the client connectors are HTTP, JDBC, and SMTP (via JavaMail).

Aranea Web Framework

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.

RSF

RSF is an open source web programming framework, with roughly the scope of Sun's JSF. RSF is written in Java, and is built on the Spring framework. RSF features a pure-HTML templating engine named IKAT, which achieves the cleanest separation between presentation and logic yet made - build "components" using pure HTML and libraries of code rather than heavy framework base classes. RSF also features a lightweight request-scope Spring clone, RSAC, which brings the magic benefits of inversion of control into the request scope. RSF currently has integrations for Hibernate, JSR-168, Cocoon and Sakai.

Strecks

Strecks is a set of extensions to the Struts web development framework aimed at Java 5 users. The aim of Strecks is to enhance the capability of Struts in terms of productivity and maintainability. Strecks makes use of Java 5 language features, in particular JSR-175 annotations, to simplify the programming model for Struts applications.

Google Web Toolkit

Google Web Toolkit (GWT) is an open source Java software development framework that makes writing AJAX applications like Google Maps and Gmail easy for developers who don't speak browser quirks as a second language.

ThinWire

ThinWire is a development framework that allows you to easily build applications for the web that look and feel like the desktop applications you're familiar with. Responsive, expressive and interactive user interfaces in your web browser without the complexity of the alternatives.

Roma

Roma Meta Framework is a Open Source initiative to make Java application development easy. The approach is totally DDD, let's think to the domain of your application and Roma will makes the rest: persistence (database), presentation (HTML + Ajax), logging, user management, sessions, etc.

Pustefix

Pustefix is a framework that helps you to develop web based applications. The framework consists of two more or less independent parts: A machinery to apply recursive XSLT transformations that produces the UI of the web application. A Java framework that takes input from the UI to change the application data and supplies changes of the application data back to the UI. Together, the framework acts similar to the Model-View-Controller pattern (as far as this is possible in the context of a web application).