- 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
- This first commit related to reactive action support basically changes internal
logic away from original Action interface which really is just
a Consumer<StateContext> but it originates pre jdk8 era.
Reactive equivalent internally is now Function<StateContext<S, E>, Mono<Void>>.
- Essentially actions will now get executed with a reactor chain fully.
- Fix StateMachineExecutorTransit in AbstractStateMachine to be full reactive
chain which were needed to get reactive actions working. This also put
StateContextTests back to its original state.
- Add typesafe interface ReactiveAction which simply wraps
Function<StateContext<S, E>, Mono<Void>> and add this to transitions with
actionFunction() as a concept. This will be added to states in next
commits if actionFunction() as a concept works.
- Polish various things and issues which were not addressed with initial reactive commit.
- Disable ActionSecurityTests for now as secured Action bean now breaks because it's
internally wrapped into a Function and Spring Security doesn't see it anymore.
Security like this needs a bit of a overhaul which can be done later.
- State do actions which are done via scheduling needs some work as now we just do
a subscribe which is probably a bit wrong. There's going to be more work for
scheduling so this also can be left later stages.
- Relates #743