- 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
- 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
- This seem to relate with machine build from an annotation
config which is then used as a session scoped bean.
- Fix autostart usage where appropriate and also fix some
test which were using wrong logic to determine autostart
usage(tests were wrong).
- Fixes#141
- 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
- Modifying concepts around DistributedStateMachine and
ZookeeperStateMachineEnsemble to get better handling when
zk connection is lost.
- New jepsen test showing that after a brain split machine
will get back to a consistent state.
- Polish javadocs
- Hopefully fixes#91
- Add missing test method for testing variable change events.
- This may also contribute to make tests more reliable when
testing variable values.
- Should contribute to #76 also.
- Change previous DistributedStateMachine fixes which didn't
really work. Now explicitely getting state from machine to be set
into ensemble for post internal transition.
- Now can send Message<E> via test plan instead of plain E.
- More testing for tweaked features.
- Remove propagating BadVersionException from ZookeeperStateMachineEnsemble
via event so that machine can be kept running. Further logs are then read
anyway via watcher. Thought we still need better handling but this
is better for now.
- Relates to #92
- Add related error handling methods to StateMachine.
- Enhance StateMachineListener and context events around
error events.
- Modify StateMachineInterceptor and stuff around it order
to handle errors.
- Fixes#6, fixes#77
- Fix some concurrent event issues which were
born with new tests
- Enhance tests for dist machine and ensemble
- Add new features to testing system
- Polish and add more logging
- Relates to #49
- New project spring-statemachine-test which contains public
classes to easy generic state machine testing.
- Concepts of StateMachineTestPlan and StateMachineTestPlanBuilder.
- Replaced one zk test to use this framework.
- Fixes#86
- Fix internal transition changes when extended
state variables has been modified. Also internal
transition is now correctly passed into other
distributed state machines.
- Rename StateChangeInterceptor to StateMachineInterceptor and
add methods for pre/post transitions.
- Adding getId concept into a state machine to help distributed
machines to know from where a state change originates.
- Fix ZookeeperStateMachineEnsemble to work better with
persisted state machine contexts.
- 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
- Relates to #74
- Tasks recipe not yet fully working, need to get
this work in to be able to work with other tickets.
- Add childs to StateMachineContext
- A lot of fixes to regions concept throughout
a code base. Some of the concepts were really broken
if there were a complex recursive set of regions, etc.
- Add task executor/scheduler to StateMachineBuilder
- Remove away from plain serialize/deserialize to write/read
concept which works better in a generic abstraction.
- Tweak related class in zookeeper package.
- 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.