[[statemachine]]
= Using Spring Statemachine

This part of the reference documentation explains the core functionality
that Spring Statemachine provides to any Spring based application.

It includes the following topics:

* <<sm-config>> describes the generic configuration support.

* <<sm-machineid>> describes the use of machine id.

* <<sm-factories>> describes the generic state machine factory support.

* <<sm-deferevents>> describes the deferred event support.

* <<sm-scopes>> describes the scope support.

* <<sm-actions>> describes the actions support.

* <<sm-guards>> describes the guard support.

* <<sm-extendedstate>> describes the extended state support.

* <<sm-statecontext>> describes the state context support.

* <<sm-triggers>> describes the use of triggers.

* <<sm-listeners>> describes the use of state machine listeners.

* <<sm-context>> describes the generic Spring application context support.

* <<sm-accessor>> describes the state machine internal accessor support.

* <<sm-interceptor>> describes the state machine error handling support.

* <<sm-security>> describes the state machine security support.

* <<sm-error-handling>> describes the state machine interceptor support.

* <<sm-service>> describes the state machine service support.

* <<sm-persist>> describes the state machine persisting support.

* <<sm-boot>> describes the Spring Boot support.

* <<sm-monitoring>> describes the monitoring and trancing support.

* <<sm-distributed>> describes the distributed state machine support.

* <<sm-test>> describes the state machine testing support.

* <<sm-papyrus>> describes the state machine UML modeling support.

* <<sm-repository>> describes the state machine repository config support.

include::sm-config.adoc[]

include::sm-machineid.adoc[]

include::sm-factories.adoc[]

include::sm-deferevents.adoc[]

include::sm-scopes.adoc[]

include::sm-actions.adoc[]

include::sm-guards.adoc[]

include::sm-extendedstate.adoc[]

include::sm-statecontext.adoc[]

include::sm-triggers.adoc[]

include::sm-listeners.adoc[]

include::sm-context.adoc[]

include::sm-accessor.adoc[]

include::sm-interceptor.adoc[]

include::sm-security.adoc[]

include::sm-error-handling.adoc[]

include::sm-service.adoc[]

include::sm-persist.adoc[]

include::sm-boot.adoc[]

include::sm-monitoring.adoc[]

include::sm-distributed.adoc[]

include::sm-test.adoc[]

include::sm-papyrus.adoc[]

include::sm-repository.adoc[]
