- Add new repository model for storing StateMachineContext
via a new StateMachineRepository.
- New StateMachineRuntimePersister interface to abstract needed
functionality to do a runtime machine persistence.
- As runtime persistence, as of now, is done via interceptors, define
JpaRepositoryStateMachinePersist and JpaPersistingStateMachineInterceptor
to define StateMachineRuntimePersister logic.
- Add new datajpapersist sample demonstrating new concepts.
- Keep tests related to jpa as there's not redis/mongo integration
implemented in this first iteration.
- As this is going to be WIP until features around this issues
are completed, docs, etc are not yet added. Also, interfaces and impls
are subject to change during a process.
- Relates to #423
- Relates to #426
- Relates to #427
- This is a preliminary work.
- New monitoring and tracing conceps around StateMachineMonitor.
- Adds hooks internally to better calculate transition times.
- Add new annotation configurer for monitors.
- New boot module which autoconfigures monitoring for boot's metrics
and trancing repos.
- New monitoring sample.
- Relates to #149
- Initial infra for config abstraction with
Spring Data Repositories via RepositoryStateMachineModelFactory.
- Initial jpa impl.
- Initial jpa sample atop of H2 DB.
- Relates to #250
- New test for choice exit scenario which
I thought was broken.
- Add new spring-statemachine-build-tests project to
ease testing so that we can mix everything. This
project is a topdog which can depend on all other
modules.
- Relates to #203
- First stage to add support for UI modeling via
eclipse uml2 and papyrus frameworks.
- Add new interface StateMachineModelFactory which is
a central point of building machines models outside
of a normal annotation/build classes. What this mean is
a hook to config model so that machine can be defined
via a model factory, instead of writing config based on
normal adapter callbacks.
- Integrate model config into an annotation model so that
you can still use normal adapters but point those to
model factory classes, which then allows external hooks
for machine configuration.
- New spring-statemachine-uml package which supports
eclipse uml2/emf frameworks to define a machine config.
- Relates to #193
- 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
- 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
- Add new StateMachineContextRepository interface.
- Add new redis module having persisting support
for StateMachineContext.
- Extract kryo serializers into a new kryo module which
is then shared with zookeeper and redis modules.
- We'll add redis related tests later when we figure out
a correct pattern for integration tests.
- Fixes#110
- 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.
- 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.
- 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.