Releases: JKISoftware/JKI-State-Machine-Objects
Stop Dynamic Dependency
[Feature: 28] Dynamic Dependencies are now removed from the dependencies list at runtime when stopped.
[Fix: 29] URI Arguments are now constructed correctly
[Feature] Added a protected method to search for dependencies by key. (key can be "name", "GUID", "Qualified Name", "Subsystem Path" or "Configuration Path")
Stop Dynamic Dependencies at Runtime
[Feature: 28] Added support to stop dynamic dependencies at runtime.
Note: The feature is incomplete but usable. For completeness, the list of dynamic dependencies needs to be purged from stale references. The dependencies list should however make it in a way that does not add latency, blocking calls, create a race condition or removes a static dependency from the array stored in the SMO base. Ideally, it would be handled by SMO Base's process to avoid the list of stale dependencies from growing out of control. At the moment, a connection handler type of application would risk running into a gigantic array of dependencies...
Process Kill
[Feature: 24] Destroy should try to Stop SMO gracefully before Abort
[Feature: 25] Stop SMO Zombie Processes when Creator Call Chain Goes Idle
Dependency aggregation fix
[Fix: 21] Stopping aggregated dependencies no longer can produce a 1556 error on termination when dependency has already been terminated.
1.1.7
[Feature: 14] Added a method for process to call a Self-Terminate method.
[Feature: 17] Launch Dependency public method now returns the SMO reference of the created dependency.
[Fix: 20] Parse URI method now correctly handles a simple path preceeded with "/" character.
Stability of nested dependencies
[Fix] Launching SMO Processes with a strictly typed VI definition caused LabVIEW to not release references after objects were destroyed. Nested Dependencies will not cause LabVIEW to keep classes locked after objects terminate. Version affected: LV2013 (ref: https://labviewcoder.com/2016/07/06/quick-tip-asynchronously-launching-vis-the-right-way)
Activity updates
[Feature] Added onStarted and onStopped to activity diagram
[Fix] Race condition in multiple Start-Stop SMOs as shown by Unit Test failure
Static and Dynamic Dependencies
[Feature] Support for static and dynamic dependencies
[Feature] Inheritability of attributes through composition
[Feature] Ownership and Identity attributes
[Feature] enumerateStaticDependencies override
[Feature] Added Registry Public Events on registration and unregistration
[Feature] Added protection for Registry through identity validation procedure for the SMO
[Feature] Listing of shared resources (concept to expand in future releases)
[Feature] Lineage property as part of Owner attribute (+ Get Qualified Name method in SMO Public API)
[Feature] URI Parsing and Construction in palette
[Fix] Fixed process notifier reference leak on stopping SMO
[Fix] Closed the registry reference after unregistration of the last SMO
[Fix] Wired missing error terminal in StartProcess( )
[Fix: 17191] Added documentation in Register Process.vi about the philosophy of the registration and process
[Fix: 17317] Fixed the case where closing UI event would be fired twice on Macro: Exit in SMO:UI process
[Fix: 17327] Event registration now destroyed on erroroverride mechanism.
[Change] Moved Create Self Reference overridable method to be executed after onCreate( )
[Change] Moved Destroy Self Reference overridable method to be executed after onDestroy( )
Version 1.0.0.11
- Changed the re-entrancy settings for the overridable protected methods to allow for recursive calls on subsystems during creation and destruction of objects.
- Get PublicEvents is now a public method for conviviality (even if it exposes event refs to developer). Prior to this change, the developer needed to get the Event Registration Reference (Mailbox) and register to all events of a subsystem.