Major
Nice to have
Bugfix
Major
Enhancement
(User-visible)
ConcurrencyManager, ContextScheme, LockingManager, LockingFactory, TokenScheme and everything that belongs to it is configured in an absurd format, is not explainable to anyone, cannot be explained by anyone and only leads to messages that some weird stuff has to be configured somewhere for it to work at all - editWrapper and editStructure. All this has to go.
Improvement
This is how it works now: LockService
Open points
-
Release all locks at session end. -
Lock strategies for structures independent of model-search. -
Admin view for release of locks. -
Renew on "apply" check. -
Save on expired lock must fail. -
Store timeout as long, since ResultSet.updateTimestamp() does not work with timezones. -
Re-introduce configured lock handler to component. -
TokenService must do SELECTs "FOR UPDATE". -
Conversion of single cases: PMTProjectEditTokenHandler. -
Configure locks directly on type. -
Table TL_LOCK is not cleaned up - unused entries remain.
Code migration
- ConcurrencyManager, ContextScheme, LockingManager, LockingFactory, TokenScheme and everything that belongs to it change to LockService, TokenService, Lock.
- EditComponent configuration: tokenHandler -> lockHandler, tokenContextName omitted, lockOperation new.
- Change *ConcurrencyScheme.xml to configuration of LockService.
Data migration
- Table TOKEN has been dropped.
- Set up new tables in lock.schema.xml.
Test
- test.com.top_logic.model.search.locking.TestLockService