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.

[2.0.0] - 2024-07-30

Added

  • IAddressProvider interface to allow for custom addressing mechanisms
  • IIdBroker interface to support runtime configuration of ID assignment strategy
  • AbstractIdBroker base class which encapsulates common ID assignment functionality
  • StaticIdBroker which allows for static assignment of an ID
  • InternalIdBroker which allows sharing of an ID among Components within the same process
  • IdMediator which facilitates ID exchange Component instances in the same process
  • Base PresenceVector and ValueSet classes used to derive presence vectors and value sets in messages
  • Support for serial and deserialization of InternalEvent derived classes

Changed

  • Component to configure, start, and stop the IAddressProvider object when necessary
  • [BREAKING] Rename settings keys, defaults, and constants files
  • [BREAKING] Move BUILD_KEY macro to separate settings.h file
  • [BREAKING] Change State::addEntryAction and State::addExitAction to take a std::function instead of an Action object pointer
  • [BREAKING] Moved toLocalTime(DateStamp, TimeStamp) and secondsSinceUnixEpoch(DateStamp, TimeStamp) functions from openjaus/model/fields.h to openjaus/model/TimeUtils.h

Fixed

  • Bug in StateMachine to support states with only transitions on the child default state
  • [BREAKING] Settings defaults and constants namespace; move to under openjaus::settings namespace vs just openjaus

Removed

  • [BREAKING] Newly unused Action and ActionImpl classes/files
  • [BREAKING] Removed numerous classes related to message fields
    • These classes were intended for internal use only but are marked as breaking in case they were inappropriately used by clients
  • [BREAKING] Removed openjaus/model/fields.h file
  • [BREAKING] Removed createMessageByName method from IMessageFactory interface

[1.0.0] - 2023-01-27

Added

  • Initial release -- code split from org.openjaus.sdk.cpp v8.0.0
  • virtual toXml() method to the model::Trigger class which is overridden by all derived Messages and InternalEvents
  • removeMessageCallback() method to model::StateMachine and core_v1_1::services::Transport to allow removing of a callback registered using addMessageCallback()

Changed

  • Add getOjConfigFilePath() to system::Application class to get the path to the ojconf file based on the command-line arguments

Deprecated

  • openjaus::model::SystemTree* Component::getSystemTree() const;

Fixed

  • Incorrect assertion in DatagramSocket::reuseAddress which caused a SocketException to be thrown on success
  • Using BroadcastMethod=BOTH did not enable use of multicast
  • Boolean message field type was packed incorrectly for BOOLEAN_FALSE