Hello guys,

I looked in the Apache mailig list rules and found no restrictions on
posting announcements, so I hope this message would not be considered
unappropriate.

I would like to announce a project, which helps to create robust and
controlled flow of application pages. Easy Wizard is primarily
targeted on relatively short page sequences, known as wizards. Wizards
are used for "right now, right here" operations, like signing up a new
user. After wizard is finished, it saves changes to domain model. Then
wizard is deallocated.

Easy wizard uses the same concept of Finite State Machine (FSM), as
other flow engines. You might have heard of or even have used Struts
Workflow Extension or Cocoon Control Flow (ported to Struts as Struts
Flow).

Despite of existing products, I decided to roll out my own, because I
was not satisfied enough with existing ones. The most important
feature of Easy Wizard, is that it seamlessly integrates with the
domain model, making synchronization between FSM and domain model a
breeze. It allows to update only data, that belongs to current step.

Some features that stand out:
* Wizard state is stored completely on server, no hidden fields.
* Wizard state is always synchronized with domain model state.
* Wizard view is always synchronized with wizard state.
* Wizard state is an object, and contains or refers to domain model data.
* Wizard transition is an object, and can validate itself, taking
  into account domain model standing.
* Back, Forward and Refresh buttons are safe to use.
* A wizard can be reconfigured in runtime.
* Wizard rules are defined completely in Java,
  no XML configuration files, no server-side Javascript.
* Wizard rules and domain model integration can be tested using
  base JDK classes only, without user interaction.
* Self-contained, can be easily integrated into most Java frameworks.
* Can be used as a component

Project Status

Easy Wizard started up as a Struts library, and was refactored later
for broader framework support. Currently the Struts integration is the
easiest, the code has reasonable quality and is ready to use. JSF
integration works, but need some polishing. Spring and WebWork will be
integrated later.

Granted, documentation is still incomplete, but the code works, and it
even has comments ;) so it should not be hard to understand the inner
workings. The whole State Machine (aka Rule Engine) consists of only
three tiny classes. You do not need servlet engine to create your set
of rules and test them.

User Interface will take a little more time, but I defined convenience
action and form bean, so all you need is to implement IOBean
interface, which processes input command, and renders output.

Also, there are two articles, published on java.net, which should help
a bit. Please note, that comparing to the article, some classes in
current download were renamed. I decided to rename all nodes to
states, and edges to transitions, so the language would be more
familiar. But you can always download the code, originally submitted
with java.net article.

Current Struts versio does not use DispathAction, because I thought
that approach chosen by me is more generic. It allows to define any
number of commands. Still, I will add DispatchAciton support with
three basic commands: Cancel, Next/Done and Back.

Project Main Page
  
  Easy Wizard:
    http://www.superinterface.com/easywizard.htm

Demos

  Live demo of New User Signup Wizard:
    http://www.superinterface.com/wizard/signupWizard.do

Tutorials And Articles

  How Easy Wizard state machine is different from other flow engines:
    http://www.superinterface.com/ewfsm.htm 

  Rule Engine HOW-TO and sample implementation 
  (article published on www.java.net, March 15, 2005):
    http://today.java.net/pub/a/today/2005/03/15/webwizard1.htm

  UI Controller/View HOW-TO and sample implementation 
  (article published on www.java.net, March 29, 2005):
    http://today.java.net/pub/a/today/2005/03/29/webwizard2.htm

  Easy Wizard API docs
    http://www.superinterface.com/wizardapi/index.html

Downloads

  Easy Wizard (compiled jars, source code, example)
    http://www.superinterface.com/files/ezwizard-src.jar

  Pre-built WAR file, containing Easy Wizard, Signup Wizard example
  and all needed Struts and JSF libraries.
  Use <hostname>/ezwizard/struts/signupWizard.do for Struts example,
  and <hostname>/ezwizard/jsf/signupWizard.jsp for JSF example.
    http://www.superinterface.com/files/ezwizard_app.war

  Dependencies: Struts 1.2.x or JSF 1.01.

Blog:

  Java Du Jour:
    http://www.jroller.com/page/javadujour/Weblog
    
Opinions are highly appreciated. But usage is appreciated even more :)
Thank you,
   Michael Jouravlev
   www.superinterface.com

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to