The Semblance Project

The Semblance project houses several subprojects that provide reusable components for Java applications, and particularly for Java EE (J2EE) web applications. Of the current three subprojects, two are frameworks (Foundation and StrutsLive), while the third is a comprehensive example application. The Foundation framework contains a broad array of generic utility classes and components, many of which were extracted from the original StrutsLive code base in order to make them easier to consume outside the web tier.

StrutsLive is a framework that adds powerful new capabilities to Struts 1.x, enabling it to function as a modern, component-based framework with features rivaling those of Webobjects or Tapestry, while maintaining total back-compatiblity with exsiting Struts 1.x application code. StrutsLive is in use today in dozens of major production applications, from high-volume B2C websites like The Shopping Channel and Armani Exchange to mission-critical B2B applications, such as an energy trading system for Enbridge Energy, a billing system for a major European telecommunications company, and the Environmental Protection Agency's compliance reporting system.

Development teams at major consulting firms such as Booz Allen, Sapient, MarketLive, and JCS International have been using StrutsLive to streamline development of web applications for commercial and government customers.

One of the key features in the current release of StrutsLive is a powerful new templating engine that integrates with the previous feature set to effectively turn Struts 1.x into a modern, component-based framework with features similar to Webobjects, Tapestry, and the like. These new capabilites allow developers to work with standard XHTML templates instead of, or in tandem with JSP. This allows templates created by HTML designers to be handed off to developers, who can then add simple markup to bind dynamic values, iterate over collections, define conditional rendering behavior, and add formatting and validation rules. This approach dramatically reduces code size, and radically simplifies templates by eliminating custom tags and scripting code (other than Javascript, of course).

There are also powerful new components in the current release that can automate dynamic queries, and can also automate the management of query results. A new ListView component supports a comprehensive set of list management features, including pagination, navigation, sorting, filtering, selection, drill-down and conditional rendering. The Semblance example application fully illustrates how to use all these features, and more.

Please visit our website on java.net for more project-specific information, including downloading and installation instructions.

Background

Semblance emerged from earlier work done in the StrutsLive framework, when it became apparent that it had outgrown its original charter to provide a set of extensions to Struts 1.x. As StrutsLive matured, it came to include a number of powerful and generically useful facilities that could potentially add a great deal of value outside the web tier. In addition, the idea of adapting the web tier functionality for use with other web application frameworks (particularly Spring MVC, and JSF) had surfaced, and had been met with a certain amount of interest.

The Semblance project made it possible to divide the original StrutsLive codebase into two frameworks. Struts-dependent code would remain in StrutsLive, and the rest would move to the new Foundation framework, no longer encumbered by ties to Struts, or to the web tier in general.

StrutsLive has been used to build numerous major B2B and B2C websites and web applications that are in large volume production use. Just a few of the many production websites known to be built on StrutsLive are:

Some notable web applications powered by StrutsLive are: Consulting companies that have used StrutsLive in applications developed for their clients are known to include: