- Currently into as internal new feature, add state
completed concecept and use it in various places.
- Main focus for this commit is to add support using
anonymous transitions with state do actions which
requires proper completion schematics.
- Internal functionality here will probably expose to
user level in future releases using various other
concepts.
- Backport #466
- Relates #504
- Adding null check for current state
- Remove synchronization from scheduleEventQueueProcessing
method in executor. Looks like this sync is not really needed
and indeed may cause jvm level deadlocks if threads are used
for execution.
- Change how some internals in
AbstractStateMachine are synchronized
to limit changes for deadlock.
- Relates to #307
- Backport of #359#360
- There is a newer mongo client with changed behaviour
as junit rule skipping tests if mongo is not running
waits 30s for a connect failure. Add new server
select timeout.
- Fixes#314
- Fix RedisRepositoryState and MongoDbStateRepository not to use
null for machineid in any case as contract is that empty machineid
is always empty not null.
- This issue was found when adding initial tck config tests, thus
this commit also adds initial tck tests.
- Fixes#279
- Relates to #278
- Classic case of using == vs. equals if Strings are involved.
- In DefaultStateMachineExecutor change event comparison
from == to equals.
- Tests using enums naturally work, but some tests using Strings
had a wrong checks.
- Fixes#253
- 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
- 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