Commit Graph

583 Commits

Author SHA1 Message Date
Janne Valkealahti
fd8db33c37 UML Factory facilities leak memory
- 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.
- Relates #572
- Relates #573
2018-07-10 17:25:24 +01:00
Janne Valkealahti
ea778f2086 Fix 1.2.x build for jdk7
- Add proper build sniffer config to catch
  jdk7 compat. This is pretty much one used
  in a framework build itself.
- Fix jdk7 usage in DefaultStateMachineExecutor.
- Resolves #561
2018-07-09 10:52:35 +01:00
Spring Buildmaster
ad522a5565 Next development version 2018-04-26 06:24:20 +00:00
Janne Valkealahti
655461182b Update changelog 2018-04-26 06:42:34 +01:00
Corbin Schwalm
c701bfae91 Fix Enum Comparision For State Machine Restart
- When comparing states that are of type Enum, the check
  always fails causing the state machine to incorrectly
  use the starting state regardless of where it was previously.
- Added unit test to test correct state is set on restart.
  However, added changes have no effect for this test. The issue is being
  caused elsewhere. When loading from JPA, ss.getId() instanceof S
  is always false causing the previous state to never be set.
- Backport #537
- Relates to #549
2018-04-11 09:08:05 +01:00
Alexandre Navarro
eda6bfd38b Add getter on TimerTrigger for period and count
- Backport #533
- Relates to #549
2018-04-11 09:06:37 +01:00
Spring Buildmaster
889ad0c6f0 Next development version 2018-03-28 06:57:25 +00:00
Janne Valkealahti
6314b6c417 Update changelog 2018-03-28 07:28:07 +01:00
Janne Valkealahti
b2218d228f Executor may build up triggers with timers
- Change executor behaviour so that it consumes all queued triggers
  which should help for cases where timers queue triggers where
  processing is waiting transition to happen.
- Fixes #538
2018-03-21 15:46:39 +00:00
Janne Valkealahti
76adda29e7 Fix issue with devtools
- Where class is resolved, use ClassLoader from
  BeanClassLoaderAware which is the one working
  with devtools.
- Backport #531
- Relates to 529
2018-03-19 07:58:16 +00:00
Janne Valkealahti
a2f8257181 Polish 2018-03-07 09:10:33 +00:00
Spring Buildmaster
a3b19be2e8 Next development version 2018-03-06 16:20:18 +00:00
Janne Valkealahti
4f5cdaee93 Polish docs
- Relates #509 #501 #466
2018-03-06 15:40:25 +00:00
Janne Valkealahti
d8499a7687 Update changelog 2018-03-06 14:49:58 +00:00
Nadim Benabdenbi
45b6b2e5ae Executor should poll until the queue is empty
- Default state machine executor: queue polling defect proof test.
- Default state machine executor: queue polling fixed.
- Backport #520
- Relates #496
2018-03-06 14:35:01 +00:00
Patrick Ruckstuhl
dd8c4ea665 Lookup needed configurer instead of injecting all configurers
- Also lookup Configurer in StateMachineConfiguration
- Added test scenario for constructor injection issue
- Fixes #522
2018-03-05 13:20:58 +00:00
jvalkeal
9788d2dfeb Rename sample datajpapersist to datapersist
- As it now supports mongo/redis using profiles,
  remove jpa from name.
- Change build and docs.
- Backport #509
2018-02-21 18:06:52 +02:00
james
282d395ba0 Use the contextObj as is when saving the StateMachineContext
- Polish and fix some merge issues
- Backport #494
2018-02-21 18:06:36 +02:00
jvalkeal
bbc4e336e5 Base work adding mongo and redis to datajpapersist
- Build deps to mongo and redis
- Config changes using profiles to enable
  mongo or redis while jpa is default
- Backport #509
2018-02-21 18:06:20 +02:00
jvalkeal
3ce942fce3 StateMachineAnnotationPostProcessor should extract correct annotated method
- Fix processing so that only expected annotations are
  processed and handlers created.
- Fixes #510
2018-02-21 15:17:17 +02:00
jvalkeal
08e1138aab Support executing state action with timeout
- Add new concepts around executing state do actions
  allowing to use timeouts via StateDoActionPolicy.
- Global config per machine or via event headers.
- Fixes #501
2018-02-15 14:24:15 +02:00
jvalkeal
3f8f61e22d Polish cdplayer sample tests
- Now hopefully these tests are more reliable
- Relates #343
- Backport
2018-02-15 14:10:37 +02:00
jvalkeal
c5ebca0b08 Polish tests and executor
- Remove extra logging
- Polish tests, remove thread sleeps
- Relates #466
2018-02-13 12:30:39 +02:00
Marco Primi
371b594f15 Add getter for state actions
State has getters for entry and exit actions but no getter for state actions.

 - Add State::getStateActions() in State
 - Implement in AbstractState
 - Update tests
 - Backport #502
 - Relates #496

https://github.com/spring-projects/spring-statemachine/issues/502
2018-02-13 09:12:25 +02:00
jvalkeal
7857440559 Add support for completion transitions
- Currently into as internal new feature, add state
  completed concecept and use it in various places.
- Main focus for this commit is to add support using
  anonymous transitions with state do actions which
  requires proper completion schematics.
- Internal functionality here will probably expose to
  user level in future releases using various other
  concepts.
- Fixes #466
2018-02-12 13:30:37 +02:00
jvalkeal
0ee1c2509b Polish hamcrest use it test integration
- Rename expectVariableMatcher to expectVariableWith.
- Change other variable expects internally to use hamcrest.
- Fixes #483
2018-02-01 09:49:32 +02:00
jvalkeal
7f78deadcc Add hamcrest integration to variables in StateMachineTestPlanBuilder
- For testing extended state variables, it's now possible to use
  new method expectVariableMatcher which takes hamcrest matcher
  as an argument.
- Fixes #483
2018-01-27 14:30:54 +00:00
Spring Buildmaster
fd63d9118b Next development version 2018-01-22 13:53:05 +00:00
Janne Valkealahti
62dc50f9cd Polish docs
- Add more info into what's new in 1.2.8
- Small polish
- Relates to #476
2018-01-22 10:04:25 +00:00
Janne Valkealahti
ea6b71c6a7 Fix typo in transition conflict
- Changing unfortunate typo conflight vs. conflict.
- Also add some docs for transition conflict.
- Relates to #456
- Relates to #476
2018-01-22 09:24:35 +00:00
Janne Valkealahti
5c13f3bd6e Update changelog 2018-01-21 13:25:28 +00:00
Janne Valkealahti
744d138944 Documentation changes
- Document changes to JPA Entity model, persistence
  facilities and related new interfaces and services.
- Relates to #429
- Relates to #476
2018-01-21 11:40:50 +00:00
Janne Valkealahti
3481140126 Update copyright year
- Relates to #476
2018-01-19 08:19:36 +00:00
Janne Valkealahti
f524ea4f62 Fix uml spel state action
- UmlModelParser wrongly set spel based state action as
  exit action. Change this to behave same as bean based
  action is used.
- Fixes #474
2018-01-19 08:01:48 +00:00
Janne Valkealahti
394ded8daa Change JPA initial state field
- Change initial field to initialState which
  resolves initial reserved keywork problem.
- Fixes #472
2018-01-17 18:39:23 +00:00
Janne Valkealahti
cb3bb87d8b Change JPA deferred events constraint
- Define fk in @CollectionTable instead trying
  to wrongly use @JoinTable
- Fixes #468
2018-01-17 16:52:13 +00:00
Janne Valkealahti
0f7624adeb JPA entity changes
- Modify existing JPA entity classes to
  have a fixed names for constraints and
  foreign key. Also name used tables so that
  we don't get crazy long names which are
  causing issues with some DB's
- Fixes #468
- Fixes #469
2018-01-17 16:14:13 +00:00
Janne Valkealahti
66174adde3 Add configuration tests for StateMachineModelFactory
- While original issue is already fixed in 1.2.x, adding
  specific tests for checking if config is coming from model
  or adapter.
- Fixes #459
2017-12-22 09:23:10 +00:00
Janne Valkealahti
2cd3b94662 Conflicting transitions cause undefined order behaviour
- Add new TransitionConflightPolicy and allow to configure
  it via an adapter interfaces.
- For now, use it in TransitionComparator which sorts transitions
  based on source states. This gives PARENT and CHILD sorting
  and allows to choose conflicting transitions either from parent
  or child.
- Add new sync thread used in submachines so that one thread is used
  in a whole call stach per machine(regions still get their own as well
  as a root machine).
- Fixes #456
2017-12-19 13:09:41 +00:00
Janne Valkealahti
11ef0e279b Find correct super type generics for configurer adapter
- Naively with StateMachineConfigurerAdapter or EnumStateMachineConfigurerAdapter
  only immediate super type were checked to find user level generics to
  instruct IOC for proper resolvable types. This worked with almost all cases
  except if user created new base type out from StateMachineConfigurerAdapter and
  bean id didn't match what what was trying to get autowired if multiple adapters
  were in use.
- Correctly find resolvable type as StateMachineConfigurerAdapter in ResolvableType
  which finds an exact correct type to get generics.
- Fixes #454
2017-12-15 08:54:32 +00:00
Janne Valkealahti
fdae9f7f48 Allow to define extended state variables during persist
- Now in AbstractPersistingStateMachineInterceptor it is possible
  to use a Function to define which variables are persisted. This
  is for cases where it is not desirable to persist some variables
  for variours reasons.
- Relates to #423
2017-12-10 11:39:41 +00:00
Janne Valkealahti
0a9273ef0b Add redis/mongo for machine persistence
- Add similar implementations as done for JPA
  which uses redis and mongo.
- Relates #428
2017-11-29 20:29:24 +00:00
Janne Valkealahti
afcd587c08 Fix extended state handling during reset
- Instead of changing extended state object, use existing one
  by clearing it and setting new values from context.
- Fixes #447
2017-11-29 13:33:12 +00:00
Janne Valkealahti
d49d52b2d3 Add stop logic to DefaultStateMachineService
- Now implementing DisposableBean and clearing/stopping
  machines if service is destroyed.
- Relates to #432
2017-11-28 10:05:29 +00:00
Janne Valkealahti
594505bce3 Add start/stop feature to DefaultStateMachineService
- Add new interface methods to StateMachineService to ease
  starting and stopping when acquiring or releasing machines.
- Relates to #432
2017-11-26 15:19:26 +00:00
Janne Valkealahti
aa6c927a6c Fix threading issues
- In AbstractStateMachine and DefaultStateMachineExecutor
  do a little more synchronisation so that submachine is allowed
  to do its run-to-completion before parent machine can do its
  own transitions. This should fix use cases, when submachine
  starts, does its transitions and actions, parent wont try to
  do its own triggerless transtions.
- Adding some new tests and fixing one other sync issue with end state.
- Relates to #442
2017-11-26 13:54:11 +00:00
Janne Valkealahti
de6d00e6c8 Make use of kryo more configurable
- Move away from thread local in favour of using
  kryo pooling.
- New interface StateMachineSerialisationService
  with KryoStateMachineSerialisationService.
- Try to work via constructors for instead of full blown
  configuration as it looks like this may give enough
  for users to customise.
- Relates to #437
2017-11-23 13:11:39 +00:00
Janne Valkealahti
6c9b349b52 Fix datajpapersist sample
- Fix sample per changed release logic
  in DefaultStateMachineService.
- Relates to #432
2017-11-23 09:52:17 +00:00
Janne Valkealahti
ca71380f9f Change persistence model structure
- Fix wrong acquire logic in DefaultStatemachineService.
- Overhaul StateMachineRuntimePersister
- Change StateMachineRuntimePersister to extend
  StateMachinePersist which should work better on
  a bean level. Also add generic type T to it and
  config where needed.
- Relates to #432
- Relates to #427
2017-11-23 08:04:15 +00:00
Janne Valkealahti
8f7c9310fe Add base DefaultStateMachineService implementation
- First take on new interface StateMachineService with
  its default impl.
- Modify datajpapersist sample to use it.
- Relates to #432
2017-11-21 10:46:49 +00:00