jStates is a java library for easy statemachine design and implementation.It uses XML to define states and state transitions. jStates is aimed at easy integration with desktop J2SE applications, Struts, Commons Validator, Web and other J2EE technologies