Spring Statemachine is a framework for application developers to use state machine concepts with Spring.
Java JavaScript HTML CSS CoffeeScript Clojure D
Clone or download
jvalkeal Initial state wrongly entered with entry point
- Fix case where submachine entry via entrypoint wrongly
  caused its initial state to get activated before
  entering transition target leading out from entrypoint.
- Fixes #577
Latest commit 61e7627 Jul 17, 2018
Failed to load latest commit information.
docs/src Update changelog Jul 12, 2018
gradle/wrapper Upgrade build to gradle 4.1 Aug 20, 2017
jepsen/spring-statemachine-jepsen Tweak jepsen partition tests having better output" Aug 23, 2015
spring-statemachine-autoconfigure/src Fix typo in a method name Jul 14, 2018
spring-statemachine-bom Add dependencies bom Feb 14, 2017
spring-statemachine-build-tests/src/test Remove spring-statemachine-redis Feb 23, 2018
spring-statemachine-cluster/src Use spring-integration-zookeeper Apr 11, 2017
spring-statemachine-core/src Initial state wrongly entered with entry point Jul 17, 2018
spring-statemachine-data Remove spring-statemachine-redis Feb 23, 2018
spring-statemachine-kryo/src/main/java/org/springframework/statemachine/kryo Make use of kryo more configurable Jan 23, 2018
spring-statemachine-recipes Adapt to logging changes Apr 19, 2017
spring-statemachine-samples Remove spring-statemachine-redis Feb 23, 2018
spring-statemachine-starter Add starter Feb 11, 2018
spring-statemachine-test/src Add hamcrest integration to variables in StateMachineTestPlanBuilder Feb 11, 2018
spring-statemachine-uml/src UML Factory facilities leak memory Jul 10, 2018
spring-statemachine-zookeeper/src Adapt to logging changes Apr 19, 2017
.gitignore Add sts4 stuff to gitignore Feb 10, 2018
.travis.yml Tweak travis settings Nov 12, 2016
CODE_OF_CONDUCT.adoc Add Code of Conduct Feb 2, 2016
CONTRIBUTING.md Fix broken link to issues tracker in project contribution guidelines Feb 10, 2018
README.adoc Update README Mar 6, 2018
build.gradle Upgrade to boot 2.0.3 Jul 11, 2018
gradle.properties Next development version Jul 12, 2018
gradlew Upgrade build to gradle 4.1 Aug 20, 2017
gradlew.bat Upgrade gradle to 3.4.1 Apr 6, 2017
publish-maven.gradle initial import Feb 4, 2015
settings.gradle Remove spring-statemachine-redis Feb 23, 2018


Spring Statemachine

spring statemachine

Bamboo Build Status (master) Bamboo Build Status (1.2.x) Bamboo Build Status (1.1.x) Travis CI Build Status (Travis)

The Spring Statemachine project aims to provide a common infrastructure to work with state machine concepts in Spring applications.

It is advised to check the actual state of this project by referring to the latest releases found on Spring Statemachine Project Page. The git repo master branch may be relatively unstable when new features are added into the source code.

Code of Conduct

This project adheres to the Contributor Covenant code of conduct. By participating, you are expected to uphold this code. Please report unacceptable behavior to spring-code-of-conduct@pivotal.io.

Downloading Artifacts

See downloading Spring artifacts for Maven repository information.


The Spring Statemachine Project Page contains links to currently available JavaDoc and Reference Documentation for particular releases and versions.


Samples can be found under spring-statemachine-samples. Check the reference documentation more about what those do.

Building from Source

Spring Statemachine uses a Gradle-based build system. In the instructions below, ./gradlew is invoked from the root of the source tree and serves as a cross-platform, self-contained bootstrap mechanism for the build.


Git and the JDK8 build.

Be sure that your JAVA_HOME environment variable points to the jdk folder extracted from the JDK download. While build requires JDK8, created artifacts are JDK7 compatible.

Check out sources

git clone git@github.com:spring-projects/spring-statemachine.git

Install all spring-\* jars into your local Maven cache

./gradlew install

Compile and test; build all jars, distribution zips, and docs

./gradlew build

Discover more commands with ./gradlew tasks. See also the Gradle build and release FAQ.


Pull requests are welcome; see the contributor guidelines for details.

If you want to contribute, search github tickets marked with help wanted or come up with your own ticket but please first open a ticket to discuss in order to avoid duplicate work on a topic or issue. Nobody wants to see the same work done twice!


Spring Statemachine is Open Source software released under the Apache 2.0 license.