Skip to content

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[3.0.0] - 2026-06-12

Added

  • Ability to specify callbacks to Management service implementation to handle entering and transitioning out of INIT, exiting READY state, and entering EMERGENCY states. This reduces the need to override the Management service implementation to handle these common events which still allowing flexibility.
  • Component specific .DiscoveryClient.Enabled configuration setting to disable built-in DiscoveryClient behavior.
    • If setting is not specified, the setting defaults to True.
  • Multiple static and class methods on all ScaledInteger derived types

Changed

  • [BREAKING] Change all getXxxMessage methods to return a std::unique_ptr<XxxMessage> instead of a non-pointer XxxMessage object
  • Update all core service implementations to based on changes to getXxxMessage method changes
  • Update Components/Transport class to implement necessary methods from IComponent interface inherited from Component class
  • Regenerate code using templates v0.3.1
    • Updates to ScaledInteger derived classes to support accessing both double and integer values
    • Updates Record derived classes to allow access to ScaledInteger fields
  • Update to openjaus/2.1.0-dev.3.0
  • Update CMake minimum version to 3.10
  • Update to C++14

Deprecated

  • The following static methods on all ScaledInteger types
    • minValue --> use MIN_VALUE constexpr instead
    • maxValue --> use MAX_VALUE constexpr instead
    • scaleFactor --> use SCALE_FACTOR constexpr instead

Removed

  • [BREAKING] Removed support for incorrectly named ReportEventTimeout::ReportTimoutRec under Events service. Replaced with ReportEventTimeout::ReportTimeoutRec
  • [BREAKING] Removed support for incorrectly named ReportTimeout::ReportTimoutRec under AccessControl service. Replaced with ReportTimeout::ReportTimeoutRec

[2.1.3] - 2025-10-09

Changed

  • Update to openjaus v2.0.2

Fixed

  • Bug in EventsClient when attempt to create two events using the same Query message with different contents
    • Requires openjaus v2.0.2

[2.1.2] - 2025-08-15

Fixed

  • Bug where source and destination addresses for messages received via the Events service were not correctly populated.

Changed

  • Update to openjaus v2.0.1

[2.1.1] - 2025-04-10

Fixed

  • Using a Service that has a transition on the DefaultState of a top-level StateMachine (vs on a nested State) incorrectly threw a null exception.

[2.1.0] - 2024-10-04

Added

  • accesscontrol::ReportTimeout::ReportTimeoutRec class. This is the correct name for the accesscontrol::ReportTimeout::ReportTimoutRec class.
  • Alias accesscontrol::ReportTimeout::ReportTimoutRec class to accesscontrol::ReportTimeout::ReportTimeoutRec.
  • Accessor methods for the accesscontrol::ReportTimeout::ReportTimeoutRec object to the accesscontrol::ReportTimeout message class.
  • events::ReportEventTimeout::ReportTimeoutRec class. This is the correct name for the events::ReportEventTimeout::ReportTimoutRec class.
  • Alias events::ReportEventTimeout::ReportTimoutRec class to events::ReportEventTimeout::ReportTimeoutRec.
  • Accessor methods for the events::ReportEventTimeout::ReportTimeoutRec object to the events::ReportEventTimeout message class.

Deprecated

  • accesscontrol::ReportTimeout::ReportTimoutRec class.
  • Accessor methods for the accesscontrol::ReportTimeout::ReportTimoutRec object on the accesscontrol::ReportTimeout message class.
  • events::ReportEventTimeout::ReportTimoutRec class.
  • Accessor methods for the events::ReportEventTimeout::ReportTimoutRec object on the events::ReportEventTimeout message class.

[2.0.0] - 2024-07-30

Added

  • Set a default IAddressProvider in components::Transport
    • Necessary after changes in model::Component
  • Add ListManagerDelegate which is a ListManager implementation that can be used without requiring inheritance
  • Support for setting callbacks on ManagedList for when the list changes
  • removeTransition method to Transport service
  • addEntryAction method to Transport service

Changed

  • Update to openjaus v2.0.0
  • Update usage of settings keys, defaults, and constants after changes in openjaus library
  • Moved generated code to generated folder
    • NOTE: Does not break or change usage
  • [BREAKING] Move and rename OjListManager files and classes
    • Renamed to ListManagerImpl
    • Move files to be directly under openjaus/core_1_1 folder
    • Update namespace to be directly under openjaus::core_v1_1
    • Move OjManagedList to openjaus/core_v1_1/ListManager folder
    • Renamed OjManangedList to ManagedList
  • [BREAKING] Move base components (Base, EventsBase, Managed, etc)
    • Move files from openjaus/core_v1_1 to openjaus/Components
    • Change namespace from openjaus::core_v1_1 to openjaus::components
  • [BREAKING] Restructure file/folder structure based on new codegen layout
  • [BREAKING] Update messages and internal events such that there is always a top-level Record, Sequence, List, or Variant.
    • This aligns the message structure more closely with the JSIDL
  • [BREAKING] The toXml method no longer takes optional ojIndentLevel parameter
    • Parameter was never intended for public use.
  • [BREAKING] The toXml output changed due to message and internal events structure change
  • [BREAKING] Change access level of service State and StateMachine objects from protected to private
  • Update service code to use new message and internal event classes
  • Removed redundant base class default initialization

[1.0.0] - 2023-04-08

Added

  • Initial release -- code split from org.openjaus.sdk.cpp v8.0.0
  • MessageFactory class that can be used to create any message within a specific service set/namespace

Changed

  • Updated to ojss templates v6.0.0

Fixed

  • Access control timeout timer was not being reset when in the Controlled::Emergencey state causing Management to be stuck in Controlled::Ready when Emergency is cleared
  • Crash if getCurrentStatus() is called before the Management state machine is initialized.