- Enhance state context to have more info about target
states which is needed to make a proper decision if
region needs to be started.
- Fix RegionState to not to start if it looks like
direct entry will be done later.
- Relates to #221
- Fix a case where region is entered directly. Essentially
now trying to see if entry into a RegionState needs to
start a region as otherwise we assume direct entry will
do a start anyway.
- Fix some tests which kinda tested wrong scenarios.
- Fixes#221
- Add mechanism for transition into a default
state vertex in cases where i.e. substate has
never been entered, thus meaning there is no
history. Without default vertex, submachine now
does default entry logic to that region.
- Fixes#204
- New test for choice exit scenario which
I thought was broken.
- Add new spring-statemachine-build-tests project to
ease testing so that we can mix everything. This
project is a topdog which can depend on all other
modules.
- Relates to #203
- With linked choices a machine got stuck in a pseudostate
while it should automatically follow the links till
non-pseudostate reached.
- Add ChoicePseudoState to use holder as state references
may not be known at a time of its instantiation.
- Fixes#195
- First stage to add support for UI modeling via
eclipse uml2 and papyrus frameworks.
- Add new interface StateMachineModelFactory which is
a central point of building machines models outside
of a normal annotation/build classes. What this mean is
a hook to config model so that machine can be defined
via a model factory, instead of writing config based on
normal adapter callbacks.
- Integrate model config into an annotation model so that
you can still use normal adapters but point those to
model factory classes, which then allows external hooks
for machine configuration.
- New spring-statemachine-uml package which supports
eclipse uml2/emf frameworks to define a machine config.
- Relates to #193
- New module spring-statemachine-cluster which is
based on spring-cloud-cluster to provide leader
election.
- Ensemble now has a concept of a leader if implementation
supports it.
- New DistributedLeaderAction can use leader info to execute
action only on a leader.
- Tweak web sample with these new concepts.
- Fixes#176
- State is now properly reported even if
state machine is stopped due to it terminating
via end state.
- Submachine is now explicitly stopped when parent
is moving its state into end state.
- Fixed some persistense issues handling along these fixes.
- Fixes#190
- change original id to uuid.
- This new id is now for user disposal.
- Currently only meant for a top-level machine.
- Can be set via annotation config, model classes or via
new StateMachineFactory.getStateMachine(String).
- Is persisted with DefaultStateMachinePersister and
StateMachineContext.
- Related new tests in ConfigurationTests and StateMachinePersistTests3.
- Fixes#186