- EnableStateMachineFactory and EnableStateMachine now
have contextEvents defaulting to true which can
be used to disable spring app context events.
- Fixes#28
- Big conceptual changes how state transitions
are handled which now allows more easy ways
to figure out what to do and where to go.
- Exposing more info via State interface
- Adding tests to samples
- Fixes#30
- New InitialTransition with initial action to get
a change to modify variables when sm is started.
- Fixes a case where internal transition did't
send transition event.
- We can't use generic enum types in annotations
so adding a feature to support @OnTransition
as meta annotation where user can define their
own states as proper enums still falling back
to @OnTransition.
- StateMachineAnnotationPostProcessor is now in its own
StateMachineAnnotationPostProcessorConfiguration which gets
imported automatically from @EnableStateMachine.
- change so that pass TestEntryAction instead of its
super interface Action<TestStates, TestEvents>. Doesn't
really matter but makes it much prettier from
user point of view.
- resolves#5
- big conceptual changes to how sub-machines are handled
order to get events working with a multi-level sub states.
- added more typing throughout few interfaces to properly
pass in state context via action axecution chain.
this type change effectively caused change to most of the
classes but not that much functional change of behaviour.
- cleaning and tidy up
- resolves issues #2 and #4
- refactor states so that we can use submachines
and regions to compose a state.
- refactor some concepts around StateMachine now that
it extends Region.
- resolves#3 by adding base pseudostate support
for initial state.
- doesn't yet provide full support for any other
pseudostate expect initial.
- Also added initial event which is used when
statemachine starts and activates initial state.