- This is a preliminary work.
- New monitoring and tracing conceps around StateMachineMonitor.
- Adds hooks internally to better calculate transition times.
- Add new annotation configurer for monitors.
- New boot module which autoconfigures monitoring for boot's metrics
and trancing repos.
- New monitoring sample.
- Relates to #149
- Make RepositoryGuard and RepositoryAction work exactly
like RepositoryState what comes for class structure
and how things are saved and used via populator.
- Relates to #262
- Refactor so that we can create RepositoryState in one place
and then reference to it from JpaRepositoryTransition impls.
- New common top class BaseRepositoryEntity for entities
- Change RepositoryState and RepositoryTransition to be abstract
classes instead of interfaces.
- New custom StateMachineJackson2RepositoryPopulatorFactoryBean and
StateMachineJackson2ResourceReader handling json refs.
- Relates to #262
- Adding ApplicationListener so that we can
consult time of last ContextRefreshedEvent and
rebuild a cache of StateMachineHandler methods.
- This implementation is a bit naive as we speak but
work for #224 will need to add better concept to work
outside of app context.
- Fixes#232
- Align related spring train deps
- Modify some other deps to get correct versions
- Some testing changes as boot 1.4.1 shuffled some
test stuff around.
- Fixed deprecations with newer boot and framework
- Fixes#256
- Revert some previous changes order to define transition
error action logic in a different place. Now basically
wrapping try/catch in a dedicated action order to have
separate error action per action as is expected by a config
SPI.
- Added some tests.
- Added docs for transition error actions.
- Relates to #238
- Fixes#259
- Classic case of using == vs. equals if Strings are involved.
- In DefaultStateMachineExecutor change event comparison
from == to equals.
- Tests using enums naturally work, but some tests using Strings
had a wrong checks.
- Fixes#253
- Change so that machine id used in StateMachineFactory
can use same id in StateMachineModelFactory which now
extended with method build(String machineId).
- Polish repo and jpa classes.
- Fixes#255
- Initial infra for config abstraction with
Spring Data Repositories via RepositoryStateMachineModelFactory.
- Initial jpa impl.
- Initial jpa sample atop of H2 DB.
- Relates to #250
- 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
- Squash commits with below entries
- Add factory with a given uuid
- Fix compile error, replace spaces by tabs and clean imports
- Make more sense to swap uuid and stringId
- Fixes#241
- Add classes directory to be ignored by git
- Doesn't yet handle actions defined for entry,
exit or do behariour.
- Docs to come when features around error actions
are fully implemented.
- Fixes#240
- 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