- Move away from thread local in favour of using
kryo pooling.
- New interface StateMachineSerialisationService
with KryoStateMachineSerialisationService.
- Try to work via constructors for instead of full blown
configuration as it looks like this may give enough
for users to customise.
- Relates to #437
- Fix wrong acquire logic in DefaultStatemachineService.
- Overhaul StateMachineRuntimePersister
- Change StateMachineRuntimePersister to extend
StateMachinePersist which should work better on
a bean level. Also add generic type T to it and
config where needed.
- Relates to #432
- Relates to #427
- 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
- Makes things less chatty if BeanFactory is null in
StateMachineHandlerCallHelper as this is usually a case
with manual builders outside of app context.
- Backport #412
- Relates #307
- Quick fix to get something out from
new boot 2.x metrics.
- Change source to java 8 compat
- Add new micrometer deps to build
- Docs and further changes will get done
when new boot metric system completes.
- Fixes#410
- As passing in null context don't have any
meaning other than doing reset with pre-defined
behaviour which currently just resets back to
initial state and clears extended state variables.
Now Also clearing machine id back to null which is
anyway a default value.
- Backport #381
- Relates #307
- Fixing machine lifecycle logic when machine
is restored which effectively should not touch
any lifecycle methods as start/stop is
user level action.
- Remove start/stop from restore and attempt to
do same when root machine is started. This also
needed some further changes as some functionality
for restore was essentially broken
- Backport #386
- Relates #307
- Fix case where method was annotated with
@OnExtendedStateChanged(key = "V1"), V1 was
changed which didn't result call to that method.
- Backport #387
- Relates #307
- Change processor registration so that if @WithStateMachine is
used with 'id', 'name' is skipped because it defaults to 'stateMachine'
and would cause extra registration.
- Relates #307
- Backport #370
- Adding null check for current state
- Remove synchronization from scheduleEventQueueProcessing
method in executor. Looks like this sync is not really needed
and indeed may cause jvm level deadlocks if threads are used
for execution.
- Change how some internals in
AbstractStateMachine are synchronized
to limit changes for deadlock.
- Relates to #307
- Backport of #359#360
- Adding support for javaconfig/uml to define
actions for transitions leading out from a
choice or junction states.
- Support for action for incoming transition is
already implemented as it is defined as normal
transition.
- Backport #108
- Relates #307
- Executor is following anonymous transitions in a loop
and if there is an exception in actions with this transition,
effectively executor ended into infinite loop.
- No bailing out from this loop if we cannot continue.
- Backport #344
- Relates #307
- Temporary add build to depend on bootJar
so that samples get created as fatjars.
- Required as boot's plugin is currently being
re-implemented and this feature is a bit broken.
- Relates to #342