You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by "Michael J." <jm...@gmail.com> on 2005/04/20 22:39:40 UTC

Announcement: Easy Wizard Web Flow library

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: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org


Re: Announcement: Easy Wizard Web Flow library

Posted by Ted Husted <te...@gmail.com>.
On 4/20/05, Michael J. <jm...@gmail.com> wrote:
> 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.

Thanks, Michael. You might also want to add an entry to the wiki page: 

* http://wiki.apache.org/struts/StrutsExtensions

"Announcements:" gets the point across, but the preferred keyword
protocol is to use braces, as in [ANNOUNCEMENT].

-Ted.

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org


Re: Announcement: Easy Wizard Web Flow library

Posted by Dakota Jack <da...@gmail.com>.
Isn't this about the umpteenth announcement?  I don't mind, Michael,
and am just letting you know that we heard about this a few times the
last few days.  Good work!

On 4/20/05, Michael J. <jm...@gmail.com> wrote:
> 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: user-unsubscribe@struts.apache.org
> For additional commands, e-mail: user-help@struts.apache.org
> 
> 


-- 
"You can lead a horse to water but you cannot make it float on its back."
~Dakota Jack~

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org