- Tweak DefaultStateConfigurer so that we don't need
to define initial state as additional state. Also
fixed some other issue which caused a bit of a mess
when i.e multiple states were introduces twice.
- Fixes#29
- Adding first changes for supporting fork and join
concepts with regions.
- Change of some pseudostate concepts to have
better model for this and future work.
- Fixes#39
- Further fixes for this issue
- Fix some tests which really test wrong conditions.
- Disabled one test which is more feasible to
fix with region fork/join #39
- Fixes#54 again
- EnumStateMachineFactory didn't add created machine
which wrapped region states into a internal
machine map which is used to resolve built machines.
- Adding test which simply tests nested regions.
- Fixes#54
- Polish, cleaning, tidy up
- Split listener and context events into new StateMachineObjectSupport
- Polish pseudostate handling
- Extract isSubstate into static util function
- Remove event from State exit/entry.
Event not needed as function argument because
it's already wrapped in state context.
- Polish how StateContext is created
- Polish state exit/entry
- Fixes#50 bug which were revealed by
trying to use history state concepts.
- Fixes#38 for history features.
- Base functionality for deep and shallow
histories.
- Some housekeeping and polish before doing
more system wide spring cleaning.
- Adding choice pseudostate with first/then/last
structure which is a synonym for if/elseif/else.
- This is a first attempt to bring better pseudostate
model to a framework.
- Fixes#41
- Fixes#46
- Add some region/group info in a state configurer so that
we know which states are in a same reqion. Just a simple
uuid for now.
- Send machine started event at end of start and properly
register listener with regions.
- Fix factory not to mess things up with submachines so
correctly track if we have multiple initial states.
- Remove end state from constructors and handle
it as a pseudostate.
- When sm enters state marked with end, stop
machine.
- Added new events which are used to notify sm
start and stop which now makes sense with
a proper end pseudostate.
- Tweaking to keep correct statemachine ref around
so that StateContext passed to actions can be
used to send events within submachines.
- This was missed due to missing test and i.e. cdplayer
should transition into playing state directly via
and event sent from action which when closed is
checking if cd is inserted.
- Fixes#33
- 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.