- 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
- remove junit4 dependecies
- refactor the unit tests by junit5
- enhance the spring-statemachine-test and spring-statemachine-build-tests so they can work together with junit4/junit5
- relates #779
- Due to a regression when new preStateChange method were
added to pass on root machine, old method did not get
called anymore. Now calling that as well and fixing
some other things around it.
- Same changes for postStateChange.
- Fixes#633
- Make kryo in AbstractKryoStateMachineSerialisationService aware of same classloader
most likely use in an app. This takes away some of those weird kryo
errors you see with a web apps.
- Add context references concept to StateMachineContext which can be used
to store reference id and then individual running machines with regions
can independently store their states. Whole machine state can then get
restored more accurately.
- Add new `region(String id)` to StateConfigurer which can be used to set region id.
This is equivalent as setting region id with json based machine structure where
you need to define region id's with orthogonal regions are in use.
- Add new datajpamultipersist sample showing running regions and how those are
persisted to a database.
- Fixes#617
- Fixes#605
- Fixes#615
- Modify so that interceptor `preStateChange` is not called
for transient states which would falsely try to i.e. persist
choice and other states with persist recipe.
- Added some tests to verify that `preStateChange` is called
only once.
- Relates to #266
- Refactor how join is handled
- Add new StateListener for listening entry/exit per State.
- Transition is now passed to next guy from a join state.
- A lot of changes in core machine/factory/executor to support
this new join handling.
- Fixes#235
- Fixes#237
- 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
- Synchronize JoinPseudoState's
JoinTracker.stateChanged(State<S, E>, State<S, E>) method
for playing nice with concurrent region execution.
Should fix#93.
- Tuning test which relates to #76. What comes for the
tests, there was this concurrency issue and also problem
in tests itself.
- Polish JoinPseudoState.
- Fix AbstractStateMachineFactory so that it does not try
to create transitions with null source or target. Basically we
just skip transition source or target which doesn't belong to
region.
- Change DefaultExtendedState to use ConcurrentHashMap so that
there's less change to get into trouble with concurrency.
- Add statechart for tasks recipe.
- Fix various concepts in TasksHandler and its tests.
- Prepare some examples for docs.
- Fixes#74
- 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