- 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
- Fixing a persist/restore bug which failed to properly
reset history state via StateMachineContext history mappings.
- Effectively caused by too early `break` from a loop resetting
states where history reset needs to check all states to find
substate machines.
- Ported test given with a #188.
- Relates to #188
- Make model data classes easier to use for
simple use cases.
- Start adding dev docs.
- Generic docs changes.
- Relates to #172
- Relates to #158
- Relates to #185
- Added new `withVerifier()` which can be used to
set a custom one or disable verifier usage.
- Tuned default verifier.
- Disabled verifier for some tests which don't
exactly use correct model.
- Relates to #103
- Enhance StateMachineContext to contain possible
history state mappings for substates.
- Add persist support for AbstractStateMachinePersister.
- Modify some AbstractStateMachine functionality
for history handling which then allows to also
reset history state.
- Relates to #182
- New concepts easing persisting operations.
- Base implementation of a persister which user can
use instead of doing things manually to build a state
machine context. Supports basic sm model but doesn't yet
'understand' deep and complex mixed models.
- Fixed some features in sm reset functionality if root machine
only have regions.
- Relates to #184
- Add new features around Trigger to arm/disarm
it so that state entry/exit can stop firing
TimerTrigger. Default functionality for timer(long)
still stays same, however timerOnce(long) will
kick this new functionality where trigger will fire
once after state has been entered.
- Fixes#165
- Move into a generic fail fast configuration error
model with better exception messages.
- Initial move into a public SPI for state machine
configuration pojo classes.
- new StateMachineModelVerifier interface for generic model verifying.
- Relates #103
- Relates #172
- Work is done together for above issues mostly because they
relate to each others for config error handling. Meaning
we can't really verify configuration if we don't have
a proper model describing actual config model.
- Adding expectStateEntered and expectStateExited methods
for testing state enter/exit in a given order. This gives
on option to expect i.e. states via anonymous transitions.
- Fixes#154
- New sample app eventservice which is used to
demonstrate how redis is used as a repository
for StateMachineContext.
- Uses pooled request scope machine instances so
that with every request a machine is reseted from
a redis.
- Provides UI to play around.
- Provides rest endpoint to send 'pageview' events
for processing. For example using curl command like:
curl http://localhost:8080/feed -H "Content-Type: application/json" --data '{"user":"joe","id":"VIEW_I"}'
- Fixes#160