Releases: OpenDDS/OpenDDS
OpenDDS 3.23.0
Download OpenDDS-3.23.zip (Windows) or OpenDDS-3.23.tar.gz (Linux/macOS) instead of "Source code (zip)" or "Source code (tar.gz)".
Additions:
- DataRepresentationQosPolicy and TypeConsistencyEnforcementQosPolicy can be set through XML (#3763)
- RTPS send queue performance improvements (#3794)
- Cross-compiling improvements (#3853)
- New support for DynamicDataWriter and enhanced support for DynamicDataReader (#3827, #3727, #3871, #3718, #3830, #3893, #3904, #3885, #3933, #3935)
- New config option for RtpsDiscovery
SpdpRequestRandomPort
(#3903) - New
opendds_mwc.pl
Wrapper Script (#3821, #3913) - Improve support for loading signed documents (#3864)
Fixes:
- Unauthenticated participant leads to invalid iterator (#3748)
- Shmem Association race (#3549)
- Shmem and tcp null pointer (#3779)
- Submodule checkout on Windows (#3812)
Notes:
- Docker images are built for release tags https://github.com/objectcomputing/OpenDDS/pkgs/container/opendds (#3776)
OpenDDS 3.22.0
Download OpenDDS-3.22.zip (Windows) or OpenDDS-3.22.tar.gz (Linux/macOS) instead of "Source code (zip)" or "Source code (tar.gz)".
Additions:
- Sequences in FACE mapping: support == for any type (#3604)
- Implement instance security methods from DDS Security Spec (#3557)
- Added meta-discovery server to RtpsRelay (#3655)
- Support building for VxWorks 21.03 (#3723, #3740)
- Alive and active flags now have timestamps in RtpsRelay (#3579)
- Static initializers for registration of TypeSupport objects (#3736)
Fixes:
- Fixed bug where partitions for RtpsRelay client were not updated (#3583)
- Fixed data race on status flag which causes missing listener invocation for BIT readers (#3584)
- Fixed bug where SEDP removes crypto handles before dissassociating (#3597)
- Fixed null BIT subscriber in ConnectionRecord (#3610)
- Fixed bug where user data reverts to original for RtpsRelay clients (#3613)
- Removed warning about unexpected register in MulticastManager (#3608)
- Fixed reference counting issue that blocks SPDP shutdown (#3619)
- Fixed dds_suppress_anys=0 (#3656)
- Ignore interfaces with no FQDN in AddressLookup (#3660)
- Fixed memory leak where DataWriter doesn't remove unregistered instances (#3684)
- Update TransportClient's use of PendingAssoc's lock (#3652)
- Clone Google Test and RapidJSON if not found (#3691)
- Set extensibility on enums (#3686)
- Do not use fixed-size buffer for partition parsing (#3704)
- Prevent Use Of IPv4-mapped IPv6 'Any' Addresses In RTPS Locators (#3713)
- Fix SEGV in shutdown when using monitor (#3732)
- Crash from missing BIT reader in shutdown (#3741)
Notes:
OpenDDS 3.21.0
Download OpenDDS-3.21.zip (Windows) or OpenDDS-3.21.tar.gz (Linux/macOS) instead of "Source code (zip)" or "Source code (tar.gz)".
Additions:
- Reduced code generation for XTypes (#3456)
ValueWriter::begin_struct_member
now takes a member descriptor for identifying key fields (#3459)- Added detailed logging for invalid QoS (#3475)
- Added example usage for
inspect
(#3493) - RTPS:
Fixes:
- Add locking to
RecorderImpl
(#3531) - Fixed minor issues with choosing addresses and hostnames in
NetworkResource
(#3527) - RTPS:
PropertySeq
now checks for invalid length (#3432)UseXTypes
RTPS discovery option now accepts descriptive values (#3493)- This was added in OpenDDS 3.20.0, but wasn't functional.
- Performance improvements for RTPS (#3500, #3508)
- Fixed a bug where heartbeats were being sent to readers that didn't exist anymore (#3540)
OpenDDS 3.20.0
Download OpenDDS-3.20.zip (Windows) or OpenDDS-3.20.tar.gz (Linux/macOS) instead of "Source code (zip)" or "Source code (tar.gz)".
Additions:
- Added the
host_name
shared memory transport config option (#3386) - Added an example test for demonstrating issues (#3322)
- Added the
--old-typeobject-encoding
option toopendds_idl
for compatibility withTypeObject
before OpenDDS 3.18.0 (#3263) - Added return code to
ServiceParticipant::shutdown()
(#3159, #3270) - CMake Module:
- Improved support for installing CMake projects that use OpenDDS (#3315, #3354, #3367, #3368, #3393)
- OpenDDS, ACE, and TAO libraries can now be installed using
install(IMPORTED_RUNTIME_ARTIFACTS)
if using CMake 3.21 or later- To help facilitate this, a new function called
opendds_get_library_dependencies
has been added.
- To help facilitate this, a new function called
- To help install generated files,
OPENDDS_TARGET_SOURCES
now adds lists of the files that where passed in and generated that are part of thePUBLIC
andINTERFACE
scopes as properties on the target - See
docs/cmake.md
for details on all of these new features
- OpenDDS, ACE, and TAO libraries can now be installed using
- Added an
OPENDDS_DEFAULT_SCOPE
option that allows changing the default scope ofOPENDDS_TARGET_SOURCES
(#3315) - Support
INSTALL_LIB
being used withmake install
to change the name of thelib
directory (#2879)- NOTE: This required changing the CMake module installation destination from
lib
toshare
.
- NOTE: This required changing the CMake module installation destination from
- Improved support for installing CMake projects that use OpenDDS (#3315, #3354, #3367, #3368, #3393)
Platform Support and Dependencies:
- Support for Visual Studio 2022 (#3267)
- Updated to work with the C++20 standard library (#3288)
- Support for OpenSSL 3.0.1 and later (#3358, #3404)
- Updated Wireshark dissector to work with GLib 2.68 and later (#2918)
- Removed Boost as an optional dependency (#3323)
- Updated the RapidJSON submodule (#3284)
Fixes:
- Fixed issue preventing 2
sequence<string>
anonymous types in the same struct (#3415) - Fixed issues with entity association when using the multicast transport (#3377)
- Fixed issue #3268, a segfault in
opendds_idl
(#3374) - Fixed thread safety of
DataReaderImpl_T
's allocator (#3335, #3403) - Improvements to how data representation is handled (#3233)
- Fixed instance lifetime issue with
assert_liveliness
(#3241) - RTPS:
- CMake Module:
OpenDDS 3.19.0
Download OpenDDS-3.19.zip (Windows) or OpenDDS-3.19.tar.gz (Linux/macOS) instead of "Source code (zip)" or "Source code (tar.gz)".
Additions:
- XTypes: Dynamic Language Binding (#2976)
- Read support only in this version
- New
inspect
tool that prints data samples read from a topic in text form - See section 16.7 of the Developer's Guide for details
- CDR Encapsulation support for non-rtps_udp transports (#3135)
- When XCDR2 is enabled in DataRepresentationQosPolicy, these transports can use mutable and extensible extensibility
- Enhanced RtpsRelay support (#3208, #3116, #3094)
- RTPS transport-level statistics (#3166)
- Made the allocators in TransportReceiveStrategy configurable (#3170)
- Option to simulate lossy network (#3138)
- Configurable maximum participants in discovery (#3145)
- Extend ValueWriter/ValueReader with array based operations (#3140)
- Extend RawDataSample with the header to support XCDR2 streams (#3028)
- DCPSLogLevel config option, see section 7.6 of the Developer's Guide for details (#3113, #3158)
Fixes:
- Source IP check override configuration (#3195)
- Update use of receive address in RtpsUdpDataLink::accumulate_addresses (#3191)
- Updated Node.js/V8 support (#3188, #3177)
- Better support for DDS Security static library builds (#3122)
- TransportReceiveStrategy: fixed issue with response queue (#3136)
- Remove broken fragment resend early return check (#3095)
- Added special-case handling for PID_PROPERTY_LIST interop (#3057)
- SEDP sequencing (#3068, #3116)
- MultiTopic robustness (#2988)
- Fixed issue with
find_package(Threads)
on recent CMake releases when callingfind_package(OpenDDS)
before a C/C++ project has been declared (#3093)
Notes:
OpenDDS 3.18.1
Download OpenDDS-3.18.1.zip (Windows) or OpenDDS-3.18.1.tar.gz (Linux/macOS) instead of "Source code (zip)" or "Source code (tar.gz)".
Fixes:
- Improve RTPS messaging behaviors under IPv6 (#2923)
- Fixed a few rtps_udp transport issues (#2954, #2997, #2998, #3009, #3013, #3027)
- Configurable parameters for RTPS Discovery lease durations (#2999)
- Auth resend backs off (more delay over time) (#2937, #2984)
- Input validity check for RTPS Parameters (#2917), sequences (#2944), addresses (#2981, #3016), locators (#3000)
- Fragment reassembly fixes (#2960)
- Type lookup service fixes (#2941)
- Fixed generation of unreachable code in operator<< (#2962)
- RtpsRelay logging and related changes (#2936, #2980, #2979, #2978, 2987, #2996, #2832)
- XML QoS loader can now use custom error handlers (#2961)
- CMake: Prevent Duplicate BUILD_DLL creation (#2977)
- CMake: Assign runtime library tao_idl on MSVC (#2990)
OpenDDS 3.16.1
Download OpenDDS-3.16.1.zip (Windows) or OpenDDS-3.16.1.tar.gz (Linux/macOS) instead of "Source code (zip)" or "Source code (tar.gz)".
Additions:
- Transport (#2940)
- Added a new configuration option for rtps_udp transport called
zero_init_acknak
.
When this enabled in the ini file, preassociation acknaks will start at 0. This is
a feature added to allow interoperability with RTI-DDS.
- Added a new configuration option for rtps_udp transport called
OpenDDS 3.18.0
Download OpenDDS-3.18.zip (Windows) or OpenDDS-3.18.tar.gz (Linux/macOS) instead of "Source code (zip)" or "Source code (tar.gz)".
Additions:
- IDL4 explicitly-named integer types (#2814, #2857, #2862)
- The existing IDL integer types,
short
,long
, andlong long
, now have new aliases, which areint16
,int32
, andint64
respectively, along with unsigned versions of them likeuint32
. - There are also two new distinct integer types:
int8
anduint8
.
- The existing IDL integer types,
- RTPS:
- Added the
LeaseExtension
RTPS discovery config option that extends the lease of discovered participants (#2869) - Added the
SedpPassiveConnectDuration
RTPS discovery config option (#2847) - Improved reassembly of fragments by adding an expiration to them (#2848)
- Added the
SedpFragmentReassemblyTimeout
RTPS discovery config option to control this.
- Added the
- Use preallocated buffers in
RtpsUdpDataLink
(#2901)- Added the
anticipated_fragments
RTPS transport config option to scale how much memory is preallocated for packet customization and fragments buffers.
- Added the
- To try to reduce possible network congestion, temporarily increase the heartbeat send period while they go unanswered (#2911, #2913, #2915)
- Added the
SendBufferSize
andRecvBufferSize
RTPS discovery config options to set the buffer sizes for the sockets used for discovery (#2935)
- Added the
- The QoS XML Handler can now take input from a string (#2439)
Fixes:
- RTPS:
- Fixed
RtpsUdpDataLink
leaking remote writers on failed associations (#2812) - Fixed
TypeObject
encoding compatibly and consistency issues (#2749, #2804) - Fixed local/local RTPS associations not properly notifying liveliness (#2783)
- Fixed durable data not being delivered in the right order (#2728)
RtpsUdpDataLink
will no longer purge durable data (#2690)- Fixed writers of fragmented data samples having issues reconnecting with readers (#2930)
- Fixed non-durable readers receiving historical samples (#2914)
- Fixed issues with security permissions and governance XML file parsing (#2896, #2912, #2916)
<id_range>
s in domain id sets can now omit<max>
in permissions and governance files.- This means
<id_range><min>0</min></id_range>
will now mean all domains.
- This means
- Fix date/time in
<not_before>
and<not_after>
in permissions grants always being interpreted as local time and fix issues with parsing time zone offsets. - Fixed settings for multiple
<domain_rule>
s in governance files ending up just being copies of the first domain rule. - Allow using
1
/0
in addition toTRUE
/FALSE
andtrue
/false
for boolean values.
- RtpsRelay fixes and improvements (#2899, #2895, #2887, #2884, #2864, #2881, #2776, #2761, #2751, #2717, #2710, #2927, #2929, #2928, #2921)
- Fixed
- Fixed
Topic
s returned fromfind_topic
not being distinct entities (#2731) - Try to workaround faulty DNS when getting the FQDN (#2677)
- Fixed
configure --wireshark-cmake
not working on Linux (#2679) - Fixed an invalid memory write in
SporadicTask
(#2685) - Fixed occasional deadlocks in
DataReaderImpl
andSubscriberImpl
associated with presentation QoS (#2886, #2903) make install
:
Notes:
- Fixed a spelling error for the
DCPSChunkAssociationMultiplier
config option (#2723)- The old spelling,
DCPSChunkAssociationMutltiplier
(with an extra "t" in "Multiplier"), will continue to also be accepted for the time being.
- The old spelling,
OpenDDS 3.17.0
Download OpenDDS-3.17.zip (Windows) or OpenDDS-3.17.tar.gz (Linux/macOS) instead of "Source code (zip)" or "Source code (tar.gz)".
Additions:
- Support for converting samples to and from JSON (#2312)
- This requires RapidJSON, so it is now installed along with OpenDDS if it was configured (#2426)
- NOTE: This might conflict with an existing RapidJSON installation.
- This requires RapidJSON, so it is now installed along with OpenDDS if it was configured (#2426)
- Support for
ignore_member_names
in the XTypes type consistency enforcement QoS (#2364) - Internal tracking of and reuse of instance handles (#2530, #2557)
--install-origin-relative
configure script option for installing with RPATH relative to$ORIGIN
(#2651)- RTPS:
Fixes:
- DiscoveryBase: additional iterator checks (#2421)
- Improve memory usage (#2481)
- Allow Java with
linux-cross
in configure script, Fixes #2518 (#2519) - Fix listeners not being invoked when remote participant times out (#2602, #2650)
- RTPS:
- Security:
- Type Support Generation:
- Use a leading
::
to qualify generated C++ scoped names (#2350) opendds_idl
fix for underscore fields (#2377)- Make initialization of static XTypes type support data tread-safe in C++03 (#2362, #2389)
- Clean up JNI local references, fixes runtime issues with large types (#2465, #2497)
- Corrected serialization for XCDR2 mutable unions. (#2471)
- Fix for include of a TAO pidl sequence using the
TAO_ROOT
-based path (#2566) - Generate Typecode identifiers needed by
tao_idl
when using C++11 Mapping (#2582, #2627) - Support IDL modules and topic types that are C++ or IDL keywords (#2608, #2665, #2668)
- Use a leading
- CMake Module:
- Fix an issue where a type support library's export header was expected to exist before it was created (#2495)
- Use
CMAKE_CXX_COMPILER
as the preprocessor foropendds_idl
andtao_idl
so a compiler is no longer required on the path. (#2503) - Fix compatibility with CMake 3.3 (#2562)
- Subsequent calls to
find_package(OpenDDS)
no longer cause a fatal error (#2616)- NOTE:
OPENDDS_ALLOW_ENV_CHANGE
optionally allowed this before, so it is no longer needed and has been removed.
- NOTE:
Notes:
OPENDDS_VERSION
and other version indicators now includes the ".0" at the end for minor releases like this one. (#2563)- NOTE: Release archive filenames and Git tags will retain the old version pattern for now.
- CMake Module:
CMAKE_CXX_STANDARD
will no longer be set on Unix platforms. This will have to be correctly set by the user (#2616)
OpenDDS 3.16
Download OpenDDS-3.16.zip (Windows) or OpenDDS-3.16.tar.gz (Linux/macOS) instead of "Source code (zip)" or "Source code (tar.gz)".
Additions:
- XTypes (#1633)
- Initial implementation of the OMG DDS XTypes version 1.3 specification
- Allows different IDL definitions to be used in the same topics and for
these definitions to evolve while remaining compatible - Includes new RTPS discovery options, QoS policies,
opendds_idl
options, and
IDL annotations - See the new "XTypes" chapter in the Developer's Guide for more information
- Added new version macros to
dds/Version.h
(#2333)- NOTE: Version macros starting with
DDS_
have been deprecated and will be
removed in OpenDDS 4.0.
- NOTE: Version macros starting with
- Configure Script:
- Android:
- RTPS performance improvements (#2325)
Fixes:
- Fixed port in RTPS discovery
spdp_local_address
configuration being ignored (#2272) - Fixed Participant Location Built-in Topic Updates being ignored (#2255)
- Fixed Internal Thread Status Built-in Topic Updates being ignored (#2247)
- NOTE: The IDL of the topic has changed.
Notes:
- For the
rtps_udp
transport, the default encoding of DataWriters changed
from classic CDR to XCDR2. To maintain interoperability with pre-3.16 OpenDDS
and other DDS implementations, the first element ofrepresentation.value
of
DataWriterQos
must be set toDDS::XCDR_DATA_REPRESENTATION
or the
non-OpenDDS 3.16 DataReader must be set up with
DDS::XCDR2_DATA_REPRESENTATION
if supported. DataReaders will continue to
be interoperable by default. - Removed
max_bundle_size
rtps_udp
transport option (#2249) - Replaced old performance-tests/bench with new Bench 2 framework (#2340, #2346)