- 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
- Trying to handle scenario where TimerTrigger keeps firing
even if machine is stopped or has moved away from its
hosting state.
- Explicitely handle trigger starts/stops in
DefaultStateMachineExecutor when executor itself
is started/stopped.
- Backport #321
- Relates to #307
- Add new api to Transition to expose calling
its actions.
- Modify rest of a framework to first notify before
calling transtion action.
- Backport #322
- Relates to #307
- Add support to uml parser to properly
detect and use exit/entry points if those
are used via connection ref points with
submachine references.
- Backport #323
- Relates to #307
- Add new tests for DefaultStateMachineExecutor to find
possible causes for a deadlock.
- Handle lifecycle scenario little differently
if timer is fired during a executor starting phase
order to not getting into a deadlock.
- Backport #315
- Relates to #307
- This is now done manually in build as
dep boms don't give it anymore. We do this
until we figure out what is a proper way
to just depend on log4j 2.x.
- Relates to #327
- There is a newer mongo client with changed behaviour
as junit rule skipping tests if mongo is not running
waits 30s for a connect failure. Add new server
select timeout.
- Fixes#314
- Modify StateMachineConfiguration and StateMachineFactoryConfiguration
so that if you have different states and events classes with multiple
machines or factories, you can autowire by types without
adding qualifiers.
- Manually try to discover generic types from enclosing adapther class
and if succesfull pass that information into bean definition
as ResolvableType.
- Backporting #306
- Relates to #307
- Backport #292
- Backport #224
- Add support so that @WithStateMachine can be used with
machines build via @EnableStateMachineFactory or via
manual builders.
- Adding new annotation @EnableWithStateMachine to help
handling needed context configuration.
- Add tests and docs.
- Relates to #307
- Backport #298
- Factory now listens machine event if autostart
is requested which should give fully started machine
i.e. if asynch executor is used. Bails out after 30
seconds. Further tweaks like allowing user to define
this time or conditionally not wait could be added later.
- Fix typos.
- Relates to #307
- Enable snapshot repos and pump up to
framework 5.0.0 and boot 2.0.0 snapshots.
- Due to issue in github.com/spring-gradle-plugins/dependency-management-plugin/issues/136
define newer log4j version for spring-statemachine-zookeeper
- There were some other minor issues preventing to do this earlier
which are now fixed in framework snapshots.
- Fixes#296