Janne Valkealahti 7c8b93bd45 Conflicting transitions cause undefined order behaviour
- Add new TransitionConflightPolicy and allow to configure
  it via an adapter interfaces.
- For now, use it in TransitionComparator which sorts transitions
  based on source states. This gives PARENT and CHILD sorting
  and allows to choose conflicting transitions either from parent
  or child.
- Add new sync thread used in submachines so that one thread is used
  in a whole call stach per machine(regions still get their own as well
  as a root machine).
- Fixes #456
2018-01-23 09:56:27 +00:00
2017-11-16 16:11:24 +00:00
2016-11-12 14:17:04 +00:00
2016-02-02 16:27:23 +00:00
2016-12-10 15:47:19 +00:00
2017-02-10 15:50:07 +00:00
2017-08-20 09:42:48 +01:00
2017-04-06 13:34:56 +01:00
2015-02-04 18:17:50 +00:00
2017-11-26 16:44:56 +00:00

= Spring Statemachine

image:https://badges.gitter.im/spring-projects/spring-statemachine.svg[link="https://gitter.im/spring-projects/spring-statemachine?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge"]

image:https://build.spring.io/plugins/servlet/wittified/build-status/SDG-MAS[Bamboo
Build Status, link=https://build.spring.io/browse/SDG-MAS] (master)
image:https://build.spring.io/plugins/servlet/wittified/build-status/SDG-B12X[Bamboo
Build Status, link=https://build.spring.io/browse/SDG-B12X] (1.2.x)
image:https://build.spring.io/plugins/servlet/wittified/build-status/SDG-B11X[Bamboo
Build Status, link=https://build.spring.io/browse/SDG-B11X] (1.1.x)
image:https://api.travis-ci.org/spring-projects/spring-statemachine.svg?branch=master[Travis
CI Build Status,
link=https://travis-ci.org/spring-projects/spring-statemachine]
(Travis)

[NOTE]
====
Master branch is now on development of `2.x` meaning it may be
extrimely unstable. For interest of studying or planning for
contributions of stable version, please checkout and use branch `1.2.x`.
====

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
http://projects.spring.io/spring-statemachine/[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
link:CODE_OF_CONDUCT.adoc[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
https://github.com/spring-projects/spring-framework/wiki/Downloading-Spring-artifacts[downloading
Spring artifacts] for Maven repository information.

== Documentation
http://projects.spring.io/spring-statemachine/[The Spring
Statemachine Project Page] contains links to currently available
JavaDoc and Reference Documentation for particular releases and
versions.

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

== Building from Source
Spring Statemachine uses a http://gradle.org[Gradle]-based build
system.
In the instructions below, http://vimeo.com/34436402[`./gradlew`] is
invoked from the root of the source tree and serves as
a cross-platform, self-contained bootstrap mechanism for the build.

=== Prerequisites
http://help.github.com/set-up-git-redirect[Git] and the
http://www.oracle.com/technetwork/java/javase/downloads[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
[indent=0]
----
git clone git@github.com:spring-projects/spring-statemachine.git
----

=== Install all spring-\* jars into your local Maven cache
[indent=0]
----
./gradlew install
----

=== Compile and test; build all jars, distribution zips, and docs
[indent=0]
----
./gradlew build
----

Discover more commands with `./gradlew tasks`.
See also the
https://github.com/spring-projects/spring-framework/wiki/Gradle-build-and-release-FAQ[Gradle
build and release FAQ].

== Contributing
http://help.github.com/send-pull-requests[Pull requests] are welcome;
see the
https://github.com/spring-projects/spring-statemachine/blob/master/CONTRIBUTING.md[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!

== License
Spring Statemachine is Open Source software released under the
http://www.apache.org/licenses/LICENSE-2.0.html[Apache 2.0 license].

Description
No description provided
Readme 19 MiB
Languages
Java 56%
JavaScript 19.3%
HTML 12.5%
Less 8.2%
CSS 1.3%
Other 2.7%