- 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
- 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
- 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
- Framework to 4.2.4
- For tests, boot to 1.3.1 and embedded tomcat to 8.0.30
- Polish and re-organise gradle files
- Can now run sample boot apps in sts due to mix of
previously sts getting older tomcat version.
- Remove most of a static class modifiers from docs
to make things easier if doing copy/paste. Not
all can be removed because some spring inner
config classes has to be static.
- Fixes#123
- Add logging of internal transitions which makes things
a bit more clear with showcase sample.
- Update showcase docs with clarification of use of
nested states.
- Now using stateMachineTaskExecutor instead of taskExecutor
so that it's easier to use custom executor and not to
collide with bean created i.e. scheduling.
- Fixes#83
- This is purely for jepsen tests, though also
handy for UI for showing that variable can be changed.
Essentially we want to have a way to set extended state
variable via internal transition which takes an value from
event headers and set that to extended state. This is then
supposed to be used from jepsen to test concurrenty issues
around extended state variables.
- Synchronize JoinPseudoState's
JoinTracker.stateChanged(State<S, E>, State<S, E>) method
for playing nice with concurrent region execution.
Should fix#93.
- Tuning test which relates to #76. What comes for the
tests, there was this concurrency issue and also problem
in tests itself.
- Polish JoinPseudoState.
- This is a web based distributed zookeeper state machine
sample showing how multiple Spring boot instances having
a state machine can work with a zookeeper to distribute state
handling thoughout a jvm boundaries.
- Also this example is using websocket support to have live
updates of a UI for state machine state changes.
- StateMachineAccess, replace state reset and variables
with a StateMachineContext.
- Additional fixes to reset state properly even if
target transition is a super state.
- Some polish
- Add tests
- Reported and fixex #81
- Change how internal state is entered and handled
when transition doesn't terminate into initial state.
- Needed to change stuff in various places because
some of the concepts were literally broken which were
overlooked due to missing tests.
- Fixes#71
- If substate is entered directry, we don't
go via initial state for particular state machine
where transition ends.
- Fixing other tests which assumed initial state is entered.
- In terms of a history state, initial state is still entered.
- New configurer which can be used to define an ensemble which
if is set automatically wraps a machine with a distributed
state machine and sets it to use an given ensemble.
- Relates to #35
- Move away from using state machine listener if favor
of interceptor which allows to skip state change.
- Remove previously added method in a
StateMachineListener. (was a bad idea).
- More tweaks to zk example
- Relates to #35
- NOTE: not yet fully working distributed sm, this
commit is considered to be a stage 1 of further
commits on this matter.
- Preliminary concept of DistributedStateMachine,
StateMachineEnsemble and StateMachinePersist.
- New module spring-statemachine-zookeeper order to
persist state in a distributed matter.
- Refactoring concept of a state machine access to get
better internal access into a sm via functional interfaces.
- Change build to use jdk7 and change test to rely on jdk8
order to test functional lambdas.
- new zookeeper sample demonstrating distributed concepts.
- Relates t0 #35 and #34.
- No docs until things are fully implemented.