jStates is a java library for easy state machine 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