- Focus of this commit is to have modern gradle build.
- Migrate most of a plugin configurations from dsl
into buildSrc.
- This fixes issues with existing docs build.
- Allows to sign files so that we have that part
done for central in a build.
- We can skip publishing samples.
- We're able to share similar logic for modules
which are meant for publish or just being samples.
- It's easier to upgrade gradle versions without
getting various build issues.
- Relates #1143
- testing: added test case for dynamic generated id
- docs: update documentation
- fix: Support @WithStateMachine for machines generated using either empty id or dynamically generated id
- Fixes#940
- While this doesn't change underlying behaviour, add sendEventCollect
method which takes a mono and returns a mono as list of results.
- Add some notes to docs why this is like this, aka having regions
returns multiple results.
- Fixes#922
- Essentially add support to be able to understand
papyrus uml linked models.
- Change handling of files in a classpath(fat-jar) to copy
those into jvm tmp directory in a structure where relative
links can work.
- Forward port #888
- Change to Boot 2.2.x to pick upcoming series.
- Introduce Awaitility to tests
- Introduce new StateMachineEventResult concept in favor of boolean
when sending events. This result interface will have richer information
what happens when event is processed as previously we simply had boolean
flag telling if even was accepted. With StateMachineEventResult we can
can provide more information like if event was deferred and which region
provided this message.
- Deprecate old event methods and add new reactive event methods which now
return a Flux of StateMachineEventResult's. This concept then allows
to send Flux of events to a machine.
- State exit/entry now return Mono<Void>
- Refactor component lifecycle to be reactive as old start/stop would
not work anymore in a reactive statemachine simply because start may
cause changes and execute flow's.
- To ease testing add internal assertj assertions for some classes. This
work is kept in a test classes for time being to get move to public
spring-statemachine-test when things are more mature.
- Overhaul StateMachineExecutor interface and replace DefaultStateMachineExecutor
with ReactiveStateMachineExecutor.
- New ReactiveLifecycleManager which is kinda reactive replacement of some internals
of a LifecycleObjectSupport. Needed as components are reactively started and
stopped during a machine execution.
- New RegionExecutionPolicy concept which is an attempt to introduce parallel config
idea to a regions. Previously this was just naively handled with TaskExecutor which
never worked perfectly while working through reactor now seem to provide more
consistent results.
- Some test has been changed to reflect changes in a StateMachineExecutor. Also execution
using reactor made some changes to state notifications which now seem to be
more consistent(aka. previously parallel execution might have given notifications
in wrong order and in some cases kinda bogus changes).
- New turnstile reactive sample which is just start of a reactive sample to show
concept with webflux.
- Don't yet really add any docs as things are in-flight.
- Fixes#740
I edited for spelling, punctuation, grammar, usage, and corporate voice. I also added leader sentences before all the images and code listings and rewrote for clarity.