- 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
- 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
- First changes to introduce ReactiveGuard similar to work done
for ReactiveAction. User level interface is ReactiveGuard but internally
it is handled as its super type Function<StateContext<S, E>, Mono<Boolean>>.
- This change still keeps some calls as blocking which will get changed
in futher commits to get a full reactive chain.
- Touching only Transition to change guard signature, other use of blocking guard
internally need to get similar changes in next commits.
- Baby steps...
- Relates #791
- 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
- In a case where uml is drawn with submachine references where
a pseudostate like choice is defined in a reference, UmlModelParser
needs to find possible parent by following machine/state references
to match a state name which references to a this particular machine.
- Actual bug was because pseudostate parent wasn't found it became null,
thus causing it to be defined in a root machine which then caused
other cascading errors like nasty loop shown in #729.
- Fixes#729
- Fixing issue when i.e. choice pseudostate is not named which
then cause some other internal errors in a model parser.
- As pseudostate need to have a name, we now auto generate with
pseudostate type name + counter.
- Fixes#591
- Refactor UmlStateMachineModelFactory and UmlUtils
so that eclipse emf unloads a resource and thus
should work better with gargage collections.
- Also try to clean out tmp files.
- Fixes#572
- 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
- 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
- When StateMachineModelFactory is passed into config
it is now used everytime when machine is build which
allows model factory to get a fresh model from its
own storage if needed.
- Shuffled stuff around in machine factory base classes
to call StateMachineModelFactory only once during a machine
build operation.
- Other tweaks and a polish.
- Fixes#254
- Add missing creating of a local transition
- Fix logic how entry/exit is not called with local
- Add tests comparing functionality with external
- Fixes#248
- Fixes#249
- AbstractState now extends LifecycleObjectSupport getting
access to TaskScheduler.
- Modify all configs so that we can have a cancellable Action
which is executed after state is entered and which is
cancelled(if running) when state is exited.
- Fixes#239
- Enhance config model so that a state can be
configured as a submachine or a factory.
- With uml it's possible to put multiple machines
into one xml(one needs to be a root machine) and
in a same way, define state as a separate machine.
- JavaConfig vs. uml config differs in a bit where
latter is passing raw model data into pojo config and
JavaConfig either full machine or machine factory.
- Fixes#121
- 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
- Add mechanism for transition into a default
state vertex in cases where i.e. substate has
never been entered, thus meaning there is no
history. Without default vertex, submachine now
does default entry logic to that region.
- Fixes#204
- First stage to add support for UI modeling via
eclipse uml2 and papyrus frameworks.
- Add new interface StateMachineModelFactory which is
a central point of building machines models outside
of a normal annotation/build classes. What this mean is
a hook to config model so that machine can be defined
via a model factory, instead of writing config based on
normal adapter callbacks.
- Integrate model config into an annotation model so that
you can still use normal adapters but point those to
model factory classes, which then allows external hooks
for machine configuration.
- New spring-statemachine-uml package which supports
eclipse uml2/emf frameworks to define a machine config.
- Relates to #193