Java Frameworks
Java Frameworks (not all...a few...and always a new one on the way)
Comparison from wikipedia of extended set of Java frameworks
Project |
Language |
Ajax |
MVC framework |
MVC Push/Pull |
i18n & l10n? |
ORM |
Testing framework(s) |
DB migration framework(s) |
Security Framework(s) |
Template Framework(s) |
Caching Framework(s) |
Form Validation Framework(s) |
Apache Click |
Java |
JQuery |
Page Oriented |
Pull |
Yes |
Hibernate and Cayenne |
Yes |
|
pluggable |
Velocity and JSP |
Cached Templates |
Built-in validation |
Sling |
Java |
Yes |
Yes |
Push & Pull |
|
Uses JCR content repository |
|
|
Yes |
Yes |
Yes |
Apache Struts |
Java |
Yes |
Yes |
Push & Pull |
Yes |
Yes |
Unit Tests |
|
|
Yes |
|
Yes |
Apache Wicket |
Java |
Yes, extensions for YUI, ExtJS and more |
Modular event driven |
Pull |
Yes |
Yes, with extensions |
Yes, mock objects, unit and integration tests through an extension |
|
Yes |
Yes |
Yes |
Yes |
Aranea |
Java |
Yes |
|
Pull |
Yes |
Yes |
|
|
|
mapping-applications using contributions from users to advantage |
|
|
FormEngine |
Java |
Yes |
|
|
Yes |
own connector API |
|
|
|
|
|
AJAX validation on server and form state update |
ItsNat |
Java |
Yes |
event driven |
Push |
using Java i18n |
|
external and built-in |
|
pluggable |
pure HTML/SVG |
page caching |
normal Java |
JavaServer Faces |
Java |
Yes |
Yes |
Pull |
|
Yes, with extensions |
JUnit |
|
Yes |
Yes |
Yes |
Yes |
JBoss Seam |
Java |
Yes |
Yes |
Pull |
Yes |
JPA, Hibernate |
JUnit, TestNG |
|
JAAS integration, Drools, Hibernate Filters, OpenID, CAPTCHA |
Facelets |
JBoss Cache, EHcache |
Hibernate Validator |
Jspx-bay |
Java |
Yes |
Page oriented |
|
|
Own API |
|
|
JAAS integration |
Master/Content Pages |
|
Yes, Internal UI validation controls |
JVx WebUI |
Java |
Yes |
Model Driven |
|
Yes |
Yes, pluggable |
JUnit |
|
Yes |
Single sourcing |
|
Yes, pluggable |
OpenXava |
Java |
Yes |
Model Driven |
|
Yes |
JPA, Hibernate and EJB2 CMP |
JUnit |
Hibernate tools |
uses JSR-168 portal security |
UI is automatically generated |
uses portal and JPA caching |
Yes |
Play |
Java |
Yes |
Yes |
Push and Pull |
Yes |
JPA, Hibernate |
JUnit, Selenium (Software) |
Separate module |
via Core Security module |
Yes |
Yes |
Server-side validation |
RIFE |
Java |
DWR |
Yes |
Push & Pull |
Yes |
Yes |
Out of container testing |
|
Yes |
Yes |
Integration with Terracotta |
Yes |
Spring |
Java |
Yes |
Yes |
|
Yes |
Hibernate, iBatis, etc |
Yes, mock objects & unit tests |
|
Spring Security (formerly Acegi) |
Commons Tiles, Velocity, etc. |
ehcache etc. |
Commons Validator |
Stripes |
Java |
Yes |
Yes |
Push |
Yes |
JPA, Hibernate |
Yes |
|
framework extension |
Yes |
|
Yes |
Tapestry |
Java |
Yes |
Yes |
Pull |
Yes |
integrated with Hibernate (tapestry-hibernate module) |
|
|
tapestry5-acegi library |
Yes |
|
built-in validation system |
Vaadin |
Java |
GWT |
|
Pull |
Yes |
Yes |
Yes |
|
|
Yes |
|
Yes |
Wavemaker |
JavaScript (client), Java (server) |
Dojo Toolkit |
Yes |
Push |
Dojo Toolkit |
Hibernate (Java) |
JUnit |
Hibernate (Java) |
Spring Security, Acegi, Role-based access control |
Dojo Toolkit |
Dojo Toolkit |
Regular expression, schema-driven validation |
WebObjects |
Java |
Yes |
Yes |
Push & Pull |
Yes |
EOF |
WOUnit (JUnit), TestNG, Selenium |
in Project WONDER |
|
Yes |
Yes |
Yes |
ztemplates |
Java JDK 1.5 or newer |
integrates YUI, Google etc. with annotations |
Yes |
Push, multiple actions per URL |
standard Java |
use any J2EE ORM framework |
Unit Tests |
|
annotation based |
Velocity, FreeMarker, JSP, others pluggable |
|
AJAX validation on server and form state update (YUI, JSON) |
Google Web Toolkit |
Java, JavaScript |
Yes |
|
|
Yes |
JPA with RequestFactory |
JUnit (too early), jsUnit (too difficult), Selenium (best) |
No |
|
|
|
|
ZK |
Java, ZUML |
JQuery |
Yes |
Push & Pull |
Yes |
any J2EE ORM framework |
Yes |
HibernateUtil & SpringUtil |
Spring Security |
Macro components & Composition |
Yes |
client and server |
Project |
Language |
Ajax |
MVC framework |
MVC Push/Pull |
i18n & l10n? |
ORM |
Testing framework(s) |
DB migration framework(s) |
Security Framework(s) |
Template Framework(s) |
Caching Framework(s) |
Form Validation Framework(s) |
Popular Java Frameworks
In instructor opinion (but, needs constant re-evalution --- a frustration of the continually evovling computing world )
- Struts
- based on standard technologies like Java Servlets, JavaBeans, ResourceBundles, and XML, as well as various Jakarta Commons packages
- Struts encourages application architectures based on the Model 2 approach, a variation of the classic Model-View-Controller (MVC) design paradigm.
- uses JavaBean to capture form input or put properties directly on an Action class.
- Examples: Hello World, Validation, UI Tags, with/Eclispse
- Java Server Faces (JSF)
- JSF uses JavaServer Pages JSP as its display technology, but it can also support other technologies such as XUL and Facelets
- JSF has a set of API for representing user interface components and manages their state, converting values, input validation and event handling, defining page navigation and support for accessibility and internationalization. It has two JavaServer Pages (JSP) custom tag libraries for expressing a JavaServer Faces interface within a JSP page. Some of its key features include server-side event model, state management,
- Example: With/Eclipse
- Spring MVC
|