- Now starting machine outside of a sycn block with
acquire vs. release. This should allow long running
start in a machine to allow next acquire to work faster.
- Fixes#770
- In a case where fork/join happens within a substate we should not exit parent state
which causes cascading stops for forked regions thus causing inconsistent lifecycle
states within that kind of a machine structure. This for example caused parent submachine
to end up stopped and all regions running even if some regions ended up into terminal state.
- Fixes#737
- This is fixing some issues where anonymous transitions
are causing post state call to happen too early i.e.
with a submachine which transits away from it.
- Fixes#734
- 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
I updated the build to use spring-doc-resources, which gives us the modern look and feel for the HTML output. Unfortunately, we lose the epub output (until the Asciidoctor team gets that fixed).
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.
- Add tests between old serialised context(write) and new context(write)
- Fix setting childRefs to empty array instead of null if childRefs
are not given.
- In JoinPseudoState join states are tracked as list of lists
where usually inner list contains one item except with region
having multiple end states.
- Now fixing this case when resetting when previously completed
region don't clear this list out from outer list.
- Fixes#684
- 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
- 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
- Fix a bug where multiple end states in a region failed to complete
if transition was from a super state which in case of join used to track
a list of end states. This is now changed to track list of lists and
we can now track that at least one end state were reached per region.
- Fixes#619
- 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
- Fix case where submachine entry via entrypoint wrongly
caused its initial state to get activated before
entering transition target leading out from entrypoint.
- Fixes#577