Spring Statemachine - Reference Documentation

Authors

Janne Valkealahti

1.0.1.RELEASE

Copies of this document may be made for your own use and for distribution to others, provided that you do not charge any fee for such copies and further provided that each copy contains this Copyright Notice, whether distributed in print or electronically.


Table of Contents

Preface
I. Introduction
1. Background
2. Usage Scenarios
II. Getting started
3. System Requirements
4. Modules
5. Using Gradle
6. Using Maven
7. Developing your first Spring Statemachine application
III. Using Spring Statemachine
8. Statemachine Configuration
8.1. Using enable annotations
8.2. Configuring States
8.3. Configuring Hierarchical States
8.4. Configuring Regions
8.5. Configuring Transitions
8.6. Configuring Guards
8.7. Configuring Actions
8.8. Configuring Pseudo States
8.8.1. Initial State
8.8.2. Terminate State
8.8.3. History State
8.8.4. Choice State
8.8.5. Fork State
8.8.6. Join State
8.9. Configuring Common Settings
9. State Machine Factories
9.1. Factory via Adapter
9.1.1. Adapter Factory Limitations
9.2. State Machine via Builder
10. Using Actions
10.1. SpEL Expressions with Actions
11. Using Guards
11.1. SpEL Expressions with Guards
12. Using Extended State
13. Using StateContext
14. Triggering Transitions
14.1. EventTrigger
14.2. TimerTrigger
15. Listening State Machine Events
15.1. Application Context Events
15.2. State Machine Listener
15.3. Limitations and Problems
16. Context Integration
16.1. Annotation Support
17. State Machine Accessor
18. State Machine Interceptor
19. State Machine Error Handling
20. Persisting State Machine
21. Using Distributed States
21.1. ZookeeperStateMachineEnsemble
22. Testing Support
IV. Recipes
23. Persist
24. Tasks
V. State Machine Examples
25. Turnstile
26. Showcase
27. CD Player
28. Tasks
29. Washer
30. Persist
31. Zookeeper
32. Web
VI. FAQ
33. State Changes
34. Extented State
VII. Appendices
A. Support Content
A.1. Classes Used in This Document
B. State Machine Concepts
B.1. Quick Example
B.2. Glossary
B.3. A State Machines Crash Course
B.3.1. States
B.3.2. Pseudo States
Initial
End
Choice
History
Fork
Join
B.3.3. Guard Conditions
B.3.4. Events
B.3.5. Transitions
Internal Transition
External vs. Local Transition
B.3.6. Actions
B.3.7. Hierarchical State Machines
B.3.8. Regions
C. Distributed State Machine Technical Paper
C.1. Abstract
C.2. Intro
C.3. Generic Concepts
C.4. ZookeeperStateMachinePersist
C.5. ZookeeperStateMachineEnsemble
C.6. Distributed Tolerance
C.6.1. Isolated Events
C.6.2. Parallel Events
C.6.3. Concurrent Extended State Variable Changes
C.6.4. Partition Tolerance
C.6.5. Crash and Join Tolerance