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]