CS6320:  SW Engineering of Web Based Systems

 

Java Frameworks

 

Java Frameworks (not all...a few...and always a new one on the way)

Project License
Apache Click Apache
Apache Cocoon Apache
Apache Struts Apache
Apache Tapestry Apache
Apache Wicket Apache
AppFuse Apache
Aranea Apache
Eclipse RAP Eclipse Public License (more rapid dev. than framework)
Google Web Toolkit Apache (not really framework ..takes java to javascript)
Hibernate
JavaServer Faces
JBoss Seam LGPL
Jspx-bay Apache 2.0
JVx WebUI Apache 2.0
ManyDesigns Portofino GPL v3
OpenLaszlo Common Public License
OpenXava LGPL
Oracle ADF Oracle Technology Network Developer License
Play Apache
RIFE Apache
Spring Apache
Stripes Apache

 

 

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
      •  

 

© Lynne Grewe