struts-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Craig McClanahan <>
Subject "Use Cases" Example Webapp for the Shale proposal
Date Tue, 04 Jan 2005 04:50:12 GMT
(Cross posting because this topic has come up on all of the lists in
the last couple weeks.)

I just committed into the Struts SVN repository a new example
application (struts-shale-usecases) that illustrate's the different
take that Shale has on how an application framework can be built
around JSF, including support for "dialog scope" (longer than a
request, but shorter than a session).  I've updated the Shale wiki
page to contain pointers to the latest API documentation for both
Shale and the example app:

and nightly builds of the example app will be available starting
tonight (pointer is on the Wiki page above).

The commit message was over the max size allowed, so here's the
descriptive text:
Initial commit of an example application for Shale, illustrating more
interesting features than one sees with MailReader.  In particular:
* Use of application level "controller" features to filter out
  direct requests for JSP and JSPF (JSP fragment) resources, since
  they should only be accessed via *.faces URLs.
  See "src/web/WEB-INF/chain-config.xml" for configuration of
  this application's additions to the standard Shale processing chain.
* Use of DialogController for a sophisticated workflow with multiple
  entries and exits:  logon dialog for a portal-type site that supports
  creating new profiles (with or without an email confirmation), plus
  "remember me" cookies.
  See the javadocs for package "org.apache.shale.usecases.logon" for
  an overview of this functionality, plus an activity diagram describing
  the state transitions.  (The diagram was produced with Poseidon for UML
  Community Edition, version 3.0, and the Poseidon project file is
  also checked in).
* Use of standard JSF facilities to support a language picker, based on
  the supported locales for the application.  (NOTE - at present switching
  languages does not appear to do anything, but that is because I only
  checked in the default (English) properties file -- if someone would
  like to translate "src/java/org/apache/shale/usecases/view/"
  into other languages, I'd be happy to check it in.
  See "src/web/locale/select.jsp" for the JSP page that does this,
  and "src/java/org/apache/shale/usecases/locale/" for
  the corresponding backing bean.
* Use of <managed-property> elements to configure the properties of a
  newly created managed bean, using either literal values or expressions
  (essentially an example of IoC with setter injection).
  In this example, such properties are used to:
  - Configure the DAO object that is used by the business logic of
    the application, using
  - Configure the functionality of the DialogController instance,
    describing whether email confirmations and remember me cookies
    should be enabled or not.
  See "src/web/WEB-INF/faces-config.xml" for configuration of this feature.
* General purpose "domains" object (cached in application scope the first
  time it is accessed) to provide localized lists of SelectItem value/label
  pairs (these provide the content for dropdown lists etc.).
  See "src/java/org/apache/shale/usecases/util/"
The Javadocs for this application will be published soon, with a pointer on
the Wiki, and nightly builds will commence this evening.


To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message