As new releases of OpenSplice DDS become available they may contain new features and new functionality. There are two main types of release, major and minor. You can find more information on the differences between these and how to upgrade on the Upgrading OpenSplice DDS page.
This page lists all the new features that have been added into the different OpenSplice DDS Version 6 releases.
For fixed bugs and changes in OpenSplice DDS v6 see the following pages:
- Fixed bugs and changes in OpenSplice DDS v6.11.x
- Fixed bugs and changes in OpenSplice DDS v6.10.x
- Fixed bugs and changes in OpenSplice DDS v6.9.x
- Fixed bugs and changes in OpenSplice DDS v6.8.x
- Fixed bugs and changes in OpenSplice DDS v6.7.x
- Fixed bugs and changes in OpenSplice DDS v6.6.x
- Fixed bugs and changes in OpenSplice DDS v6.5.x
- Fixed bugs and changes in OpenSplice DDS v6.4.x
- Fixed bugs and changes in OpenSplice DDS v6.3.x
- Fixed bugs and changes in OpenSplice DDS v6.2.x
- Fixed bugs and changes in OpenSplice DDS v6.1.x
OpenSplice V6.11.2p1 contains the following change
- Dlite moved from stable to experimental because of an issue with sequence numbers, it’s possible that sequence numbers can rollover causing the service to stop working correctly. To fix this, we need to adjust the protocol which will be done in a new V7 release this also causes the Durability service to not function correctly that is why in V7 Dlite will become the new Durability service and the old Durability service will be removed.
OpenSplice V6.11.2 contains the following new features:
- Dlite moved out of Beta to a stable service.
- The example and custom_lib build system moved to CMake, CMake can be used to generate the appropriate build files for the given project. We advise users to use at least CMake 3.19, CMake is available Here. More information on how to build the examples and the custom libs can be found in the READMEs in the corresponding directories.
- The Helloworld examples are updated to be compatible with the ones that come with CycloneDDS
- Beta support for Network Mobility for the DDSI2 network service on Linux based systems; it is now possible to change IP addresses during runtime and startup without an interface present.
OpenSplice V6.11.1 contains the following new features:
- DLite Improvements, bugfixes and memory leak fixes
- A conversion tool for migrating a persistent store from Durability to Dlite, more details can be found in tools section of the deployment guide.
OpenSplice V6.11.0 contains the following new features:
- Beta version of Dlite a new Durability Service, Dlite is the next generation improved durability service that complies with DDS Persistence Profile. More information about this service can be found in the Deployment Guide
- Support for Ubuntu 20.04 LTS
- C# language binding is built with the .NET SDK and available for Windows, Linux and MacOS platforms. For more information please check Here
- The language binding targets netstandard2.0 on all platforms for maximum compatibility.
- Windows builds, in addition, include a legacy assembly targeting the (mostly arbitrary) .NET Framework version supported by previous OpenSplice releases. This assembly is located in a subfolder of the bin directory, named after the target framework moniker, eg. %OSPL_HOME%\bin\net472 for 64-bit Windows 10 VS.NET 2019 (P838) builds. Note these will be removed in the next OpenSplice major release.
- The language binding sources have been added to the custom-lib folder. This allows users to compile a custom assembly using a different toolchain and/or targetting a different framework.
Features Removed
- Removed the deprecated Isocpp API this has been replaced by the Isocpp2 API since V6.6.0
- Removed the IShapes demo, This has moved to github and can be found Here
OpenSplice V6.10.4 contains the following new features:
- Support for NodeJS 12. NodeJS 8 is now no longer supported
OpenSplice V6.10.3p2 contains the following new features:
- Support for Debian 10 and Red Hat 8
- A new tracing category MONITOR_COMPLETENESS is added. With this new tracing category (which is below the WARNING level but above the INFO level), the following message will be added to the log:
- Marking all kernel groups COMPLETE
- Marking all kernel groups INCOMPLETE
OpenSplice V6.10.3 contains the following new features:
- Support for Windows IoT Enterprise
- Support for AArch64 architecture for Ubuntu 18.04LTS
- Removed dependency warning for not using Oracle JDK, OpenJDK is now also supported
- The OpenSplice supported platform list has been updated
- The deployment guide has been updated with a section about ‘Signals on Windows’ to explain OpenSplice termination behavior on Windows
- The DDS Security section in the deployment guide has been updated with a section about how it works with the Durability Service
OpenSplice V6.10.2p1 contains the following new features:
- The hyphen character (‘-‘) in now allowed in a topic name
- Files generated by idlpp can be instructed to begin with a pre defined comment more info can be found in the OSPL-1144 release note
OpenSplice V6.10.2 contains the following new features:
- Support for DCPS built-in topics in the Node.JS API
- The Durability service is now fully functioning with DDS Security.
- DDS Security Access Control
- New idlpp backend for classic StandAlone C++, the old one is still available by using -o deprecated-c++-mapping
OpenSplice V6.10.1p1 contains the following new features:
- The Java Register_Callback function in the Java FACE API is now 2.1 specification compliant. The Holder argument now complies to the following naming scheme: FACE.Read_Callback_xxx_DataHolder
- The C++ FACE API SYSTEM_ADDRESS_TYPE type is changed from Char* to void* to match the 2.1 specification
OpenSplice V6.10.1 contains the following new features:
- The FACE API is in alignment phase with the 2.1 specification
Known issues and differences with the specification at this moment are:- The Java Register_Callback function expects a FACE.Read_Callback_FACE_xxx_DataHolder callback argument where OpenSplice currently supplies a FACE.xxx_DataRead_CallbackHolder argument, this naming scheme is in alignment with the Send/Receive Message interface
- For the Java and C++ FACE API the signature of the Send_Message and Receive_Message is changed, the argument message_type_id is removed as this is not part of the 2.1 spec and for OpenSplice this argument was already not used
- The FACE API 2.1 specification for JAVA requires CORBA infrastructures in the generated Holder and Helper classes. In OpenSplice we do not need these classes and therefor we currently do not generate them
- A FACE C++ custom-lib is added so users can build the FACE library to match their own build environment
OpenSplice V6.10.0p1 contains the following new features:
- Added support for the KV store for Linux Yocto zynqmp_zu102 ARM Cortex A53 Xilinx
OpenSplice V6.10.0 contains the following new features:
- The OMG DDS Security specification is now supported.
Known issues and differences with the specification at this moment are:- Configuration of Security is done through the configuration file and not the Participant QoS (see Deployment Guide for more information).
- The Access Control plugin does not support a governance file, but has hardcoded encoding settings (see Deployment Guide for more information).
- RTPS message encoding is not supported (RTPS sub-message encoding and payload encoding are).
- PKCS11 is not supported.
- Because encoding adds data to the messages, it is possible that messages exceed the UDP packet max size (64KB). This is only possible when the General/MaxMessageSize has been increased, in the configuration, to close to UDPmax. This is not properly handled yet.
- Relay only feature is not supported.
- Plugins Listeners event handling is not implemented.
- It is not compatible with Vortex Link.
- When you increase the number of nodes in a system, especially with slower platforms, Secure discovery can take quite a while. This discovery time can be reduced drastically by using the Internal/SquashParticipants configuration (see Deployment Guide for more information)).
- It is now possible to specify a windows service name in the installer when OpenSplice is being installed as a windows service.
- Node.JS DCSP API has exited Beta.
Known issues left with the Node.js DCPS API:- Listeners are supported only on Reader, Writer and Topic
- JavaScript classes do not cleanup DDS resources. When using instances of Participant, QoSProvider, QoS, Waitset or GuardCondition, you must explicitly call the delete() method on these instances to reclaim DDS resources.
OpenSplice V6.9.2p2 contains the following new features:
- Beta implementation of the Node.js DCPS API more information can be found in the Node.js DCPS API Guide inside the docs directory
Known issues with the Node.js DCPS API:
- Listeners are not supported
- The current packaging does not bundle npm package dependencies on installation. The required npm packages are installed using the “npm install” command, which requires internet access.
- JavaScript classes do not support destructor like functionality. When a qos object is dereferenced, the C99 QoS handle is not automatically cleaned up. In the Beta, users must explicitly call delete on QoS JavaScript class instances.
OpenSplice V6.9.2p1 contains the following new features:
- Changed time format to UTC representation in the OpenSplice log and trace files.
The previous format was ‘seconds,nanoseconds` since EPOCH (1-1-1970)The new format is:
YYYY-MM-DDThh:mm:ssZ S.MSYYYY = four-digit year
MM = two-digit month (01=January, etc.)
DD = two-digit day of month (01 through 31)
hh = two digits of hour (00 through 23) (am/pm NOT allowed)
mm = two digits of minute (00 through 59)
ss = two digits of second (00 through 59)
Z = +/- UTC offset (4 digits)
S = number of seconds since EPOCH time base.
SM = number of micro second fraction of a seconds since EPOCH time base - Implemented configuration option for logging of discovered entities.
This option allows to specify a logfile which will contain a log line for each builtin topic update of all discovered entities. This option is documented in the configurator.Example of the configuration:<OpenSplice> <Domain> <Name>LOGROTATE</Name> <BuiltinTopics enabled="true" logfile="builtin.log"/> </Domain> </OpenSplice>
- The OpenSplice log and trace files can now be used together with logrotate to get this working the option copytruncate has be set in the logrotate configuration for OpenSplice log/tracefiles. Usage of logrotate can be found in the logrotate manual.
OpenSplice V6.9.2 contains the following new feature:
- The Java 5 examples and the Java(5) API are now build with Apache Maven 3.x. Apache Maven 3.x can be obtained here.
- Support for the ‘/’ character in topic names
- [Launcher] Configurations tab – UI improvement to indicate invalid OpenSplice config files
OpenSplice V6.9.1 contains the following new feature:
- Node Isolation – OpenSplice 6.9.1 includes support for isolating a node from the network by using the set_property extension on the API. When the newly introduced property (named isolateNode) is enabled, network services will stop sending to the network and will drop all incoming traffic.
OpenSplice V6.9.0 contains the following new feature:
- LabVIEW DDS Binding – OpenSplice 6.9.0 includes a DSS binding for National Instruments LabVIEW, allowing LabView 2017 applications to connect to a DDS domain and exchange data with other DDS applications. The binding includes a LabVIEW VI Package (located in the tools/labview subdirectory of a OpenSplice installation). Once installed, the VI Package enables the creation of DDS applications, including the compilation of IDL into LabVIEW virtual instruments and controls. See the OpenSplice LabVIEW Guide for more information. The LabVIEW binding is available on OpenSplice Windows and Linux builds compatible with LabVIEW 2017.
- Python DCPS API – The Python DCPS API is now taken out of beta and considered GA.
OpenSplice 6.8.3 contains the following new features:
- This release includes beta support for Mac OS X using Clang V7
- In order to support certain simple uses cases without the need for IDL, code generation or type registration, our product is extended with 4 new builtin types: Bytes, _String, KeyedBytes and KeyedString these are the built-in types that exist in the X-Type spec.
- For MQTT-like API and general-purpose topics for IoT usecases a beta release of pre-defined generic IoT type called IoTData is introduced, which can carry data in the form of name value pairs. The IoTData type can be used in the C#, C99, IsoCpp2 and Java5 API. This IoTData type is subject to change for the 6.9 release.
- This release includes a beta of the Python binding for DDS. The binding is a Python package that enables Python 3.4 or later to connect natively to a OpenSplice domain to register topics, and then read and write topic data. In the beta, topic types are described by IDL. However, you do not need to run IDLPP; instead, a python function (ddsutil.get_dds_classes_from_idl) returns Python classes and topic descriptors directly. More information on the binding may be found in the tools/python directory under your OpenSplice installation.
- Added examples for the C99 API
OpenSplice 6.8.2 contains the following new features:
- C# Language binding now supports the use of unions in your IDL data model.
- The license for OpenSplice has been changed from LGPLv3 to Apache 2.0.
OpenSplice V6.8.1 contains the following the following improvements related to the MATLAB/Simulink integration:
- Simulink Coder is now supported for the Vortex DDS block set. Users with a Simulink Coder license (available from MathWorks) can now generate C code from their Simulink models. Note that such C programs will require an OpenSplice installation in order to compile and execute on the desired target platform.
- Vortex DDS Block Set for Simulink has been enhanced to support various wait conditions on read (wait for historical data, wait for data available) and write (wait for matching subscribers). In addition, IDL sequences are now supported.
- The MATLAB API for Vortex DDS has exited beta. Improvements include generation of MATLAB classes from IDL files via IDLPP. In addition, IDL sequences and bounded strings are now supported. Finally, more robust error checking has been implemented.
OpenSplice 6.8.0 contains the following new features:
- MATLAB/Simulink integration – Via its standardized Data Distribution Service (DDS) interface, OpenSplice now provides integration with MATHWORKS MATLAB and Simulink products. MATLAB classes as well as Simulink BUS definitions are automatically mapped to their corresponding Topic definitions in DDS. To ensure type agreement between DDS and MATLAB/Simulink applications,MATLAB classes and Simulink blocks can be exported to the IDL format that is well-known for DDS applications. The integration allows users to create DDS entities in their MATLAB/Simulink model and associate them with desired Quality-of-Services in separate XML files to provide maximum flexibility and control how and when data is exchanged. These capabilities allow users to transparently share any data between different MATLAB/Simulink applications and/or pure DDS applications no matter where they have been deployed in the network.
- Durability master priority configuration – Up till now it was almost impossible to control which durability service becomes master. This leads to situations that durability instances that should not become master can become master. Furthermore, it is currently not possible to indicate that a durability instance can act as aligner, but should not take up the responsibility to act as master for other instances. To provide more control which node becomes master for a namespace, the //OpenSplice/DurabilityService/NameSpaces/Policy[@masterPriority] attribute can be specified. This is an optional attribute that specifies a value between 0 and 255. Value 0 means that a node will never become master, and value 255 indicates that the legacy master selection will be used. The default is 255. When the masterPriority is specified between 1 and 254, nodes with a higher masterPriority should become master. See the deployment manual for more information.Note that there are currently a few limitations:
- Mastership handover in case a better but late joining master arrives is currently unsupported.
- In case of mixed deployments with legacy nodes, the nodes that support masterPriority must use masterPriority=255.
OpenSplice V6.7.2 contains the following new features:
- The OpenSplice configuration allows for the specification of a report plugin which is a dynamically loaded library to which all the report messages are forwarded. A report plugin is associate with a particular domain. To enable the plugin to associate a report message to a particular domain the message that is reported is extended with the domain_id of the domain from which the message originates. Further report messages are only forwarded to the plugin associated with the domain the report message originates. In a multi-domain configuration this enables the report plugin to determine the corresponding domain. Note that not all report message can be associated with a particular domain. In that case these message will be forwarded to all plugins with a domain_id of -1.
- The validation of the OpenSplice XML configuration file has been made more stricter. On startup of OpenSplice the provided configuration file is validated and OpenSplice is not started when the configuration file contains errors. For example the validation of the configuration file checks for missing mandatory elements and attributes, unknown element or arttributes, or the specification of incorrect. When the validation finds errors then these errors are reported in the error log.
OpenSplice V6.7.1p3 newly introduces support for the following new platforms:
- Raspberry Pi 3 Raspbian Jessie (32 bit) Host and Target, gcc 4.9.2, ARMv7 (Debian 8)
- RHEL7.1 host, ElinOS 6.1 hypervised by Pike OS 4.1 Core i7 x86_64 target
- Ubuntu 16.04 64 bit host and target
OpenSplice V6.7.1 contains the following new features:
- The C99 DDS API (beta) – Instead of the legacy C API which is based on the OMG IDL to C mapping, the C99 API offers a more natural and modern DDS API for the C programming language. This allows users to be more productive. Besides thatm the API allows users to switch their existing applications between Lite and OpenSplice products without changing their code (a recompile suffices.
OpenSplice V6.7.0 contains the following new features:
- Group coherency support for Tuner and Tester – Both of these tools now has the ability to publish and subscribe with custom Presentation policies. New UI workflows have been established for working with coherent and ordered sets of data for group and topic level access scope. See the new sections in the Tuner user guide and the Tester user guide for more details.
- OpenSplice previously used internally time stamps that would wrap around somewhere in the year 2038. To allow time stamps that exceed 2038 OpenSplice now uses a new internal time representation. This time representation will wrap around somewhere in the year 2262, which is believed to be sufficient for all applications that are being written today. The internal time representation will by default not be exposed to applications to avoid backward compatibility issues, so existing applications should not notice this change. However, users can enable these extended time stamps to be exposed, so that applications can use these extended time stamps. This is explained in more detail in the Deployment Guide section ‘Time stamps and year 2038 limit’.
- New TimeBasedFilterQosPolicy behaviour – this is described in more detail in the OpenSplice DDS release notes.
The Tuner user guide, Tuner user guide and Deployment Guide can be found in the OpenSplice DDS documentation set.
OpenSplice V6.6.4p3f17 contains the following new features:
- Coherency outside name-space, error reporting – When creating group coherent writers a check is done to determine if the writer is in a single name-space and if all other writers part of the group coherent publisher are in the same name-space, if not an error is reported. This helps ensure that all group coherent writers for a single publisher are all in the same name-space so that durability is able to correctly align group coherent transactions.
OpenSplice V6.6.4p3f16 contains the following new features:
- Notification of sample lost on writer side – A new feature has been implemented that allows notifying publishers when a reader becomes unresponsive (reliable communication is lost and the reader may miss samples). The mechanism is implemented using the already existing publication-matched status, i.e. the count will be lowered when reliable communication with a reader is lost. This feature is only supported when using the DDSI networking service. Note that the default configuration of //DDSI2Service/Internal/ResponsivenessTimeout is infinite, which means readers will never be considered unresponsive and the sending will simply wait for the reader to become responsive again. Only when a valid non-infinite responsiveness timeout is set, the newly implemented mechanism is enabled.
- Scalability improvements for historical data alignment – It is now possible to configure content filters in the configuration file using the //OpenSplice/Domain/Filters element. These content-filters are applied within the complete local federation meaning that all data that does not match a filter is not maintained within the federation. As a result of this, none of the local data-readers, including services, will not receive non-matching data, i.e. filtered out data will not exist. Different filters can be specified for different partition-topic combinations using //OpenSplice/Domain/Filters/Filter elements. By using filters, the data-set that is maintained and aligned can be reduced and therefore less memory, bandwidth and CPU resources are required. This is useful for use cases where it is known up-front what part of the data for a given partition-topic is required for a given federation. Please note that when a filter is set for a given partition-topic combination, the Durability Service can no longer act as a master for the name-space that contains the given partition-topic combination as it is incomplete by definition.
- Ability to include wall-clock timestamps in reports in case a Userclock hase been configured – A new configuration attribute //OpenSplice/Domain/UserClock[@reporting] has been introduced. This attribute identifies if messages reported in the ospl-info/ospl-error logs will include timestamps obtained from the UserClock library or use the standard system clock for time reporting. When set to true, which is default the userclock will be used. When set to false the system clock will be used for time reporting in the log files.
OpenSplice V6.6.4 contains the following new features:
- Future Airborne Capability Environment (FACE) Transport Services Segment (TSS) V1.2 API for Java and C++ (BETA) – The FACE Standard defines the software computing environment and interfaces designed to support the development of portable components across the general-purpose, safety, and security profiles. FACE uses industry standards for distributed communications, programming languages, graphics, operating systems, and other areas as appropriate. The goal of FACE is to reduce software development and integration costs and reduce time to field new avionics capabilities. FACE establishes a common computing software infrastructure supporting portable, capability-specific software components across Department of Defense (DoD) avionics systems
The FACE C++ and Java API’s supplied with OpenSplice are targeting developers and integrators who want to take advantage of the Data Distribution Service (DDS) standard. For more information on usage, please check the examples/face directory within your OpenSplice installation.
Please note that more documentation will be added in a future release.
OpenSplice V6.6.3p3 contains the following new features:
- Added Yocto 3.0.6.32 Freescale P4080ds (e500mc) target platform for RHEL 6.4 64 bit host
- Added RedHat Enterprise Linux 7.2 for Intel 64 bit host and target
OpenSplice V6.6.3 contains the following new features:
- Client-side durability – In OpenSplice, the realization of the non-volatile properties is the responsibility of the durability service. This service is on one hand responsible for maintaining the set of historical data and on the other hand responsible for providing historical data to late-joining subscribers. The configurations of the different services drive the behavior on where and when specific data will be maintained and how it will be provided to late-joiners. To prevent the need of equipping each application with a full durability service in single process mode, it is now possible to equip applications only with a client-side durability part and run the server part on a different location in the system (or on multiple locations driven by fault-tolerance requirements). This reduces resource usage in single process applications drastically. See section 12.2.27 “DurablePolicies” in the deployment guide for more details about the configuring client part and section 12.3.2 “ClientDurability” about enabling the server part.
- Launcher updates:
- Product release information is now accessible in Launcher through the “Documentation” section under the new “Product Information” tab. The tab contains references to the OpenSplice Intro, the release notes and the known issues.
- All guides and manuals are now available in Launcher.
- The “Memory Statistics” tool is now available in Launcher under the “Tools” section alongside Tester, Tuner, Configurator and the Console. Clicking on the mmstat button opens up a command prompt and run the “mmstat” command. Upon termination of the command, the command prompt holds to allow the user to further interact with it.
- Add ability to open the Visual Studio example solution files to Launcher – On Microsoft Windows platforms, users now have the ability to open the example solution files for the OpenSplice examples in order to inspect and build them. The new section is only displayed on Windows platforms in the Examples pane. Clicking on the Open Visual Studio solution file icon will open the selected example solution file in the Microsoft Visual Studio editor. The version of Microsoft Visual Studio that is used to open the example solution files is used by either inferring from the VCINSTALLDIR environment variable or by looking in the PATH to see if devenv.exe is found. If the executable cannot be found in either locations, a notification will pop up instructing the user to set the appropriate environment variables. Note: The example solution files will no longer be available to users from the Start Menu in Windows.
- Improved reference docs for DDS API’s – the reference documentation for ISOC++v2, Java5 and C# DDS API’s have been significantly improved.
- Added Windows 7 – Visual Studio 2015 support (64-bit)
- Added Windows 10 – Visual Studio 2015 support (64-bit)
- Google Protocol Buffers support for Tuner – The Tuner tool has been extended with functionality to be able to write/read Topics that have been modeled using Google Protocol Buffers (instead of OMG IDL) similar to the support already available in the Tester tool. Refer to the new section in the Tuner user guide for more details.
OpenSplice V6.6.2 contains the following new features:
- Detach from all domains – A new operation has been added to the DomainParticipantFactory in the DDS API. The operation allows you to detach your application safely from all Domains it is participating in with one single call.
- Improved entity naming – The naming of DomainParticipant, Publisher, Subscriber, DataWriter and DataReader entities has been improved. Tooling visualizes these names and the improved naming makes it easier for users to relate entities to their applications
- Launcher – In OpenSplice Launcher, a new section called “Controls” has been introduced. This section contains buttons to easily start and stop an OpenSplice domain based on the active ospl config file in Launcher. The start and stop buttons are disabled if the active ospl config file describes a single process deployment. When the user clicks on the start/stop button, a progress bar is displayed in the bottom tool bar to indicate that Launcher is processing the request. When Launcher has completed the operation, notification pop-up messages are displayed indicating the result of the requested operation. Note: in general all items that are now available in the Launcher no longer appear in the start menu on Windows platforms.
OpenSplice V6.6.1p1 contains the following new features:
- Added debian6 ARMv6 target platform for debian6 ia32 (x86) host
- Added debian7 ARMv7 hardfloat target platform for debian7 ia32 (x86) host
OpenSplice V6.6.1 contains the following new features:
- Improved out-of-memory handling for shared memory – operations that require memory now reserve memory prior starting the operation to be able to ensure beforehand whether or not the operation will succeed. This removes the need for configuring large memory thresholds in dynamic systems with large shared memory segments.
- Improved mutex and condition variable implementation for Windows platforms. This improves overall performance of the product on those platforms.
OpenSplice V6.6.0 contains the following new features:
- ISOC++ DCPS API version 2 – A brand new version of the ISOC++ specification (dcpsisocpp2) has been implemented. This implementation replaces the initial ISOC++ DCPS API (dcpsisocpp), which is deprecated now and will be removed in a future release. The new version addresses various issues in the initial version of the specification. Check out what you need to do to migrate in the ISOC++V2 migration guide
- Full PresentationQosPolicy support
- GROUP-level coherence support – The GROUP level access_scope of the PresentationQosPolicy is now supported. This allows representing changes to data instances of different DataWriters underneath a single Publisher to be presented to the subscribing application as a single (coherent) set. Please check out the API reference manual for your fOrdered access for group and topic level access scope – The ordered_access property of the PresentationQosPolicy has now been implemented for topic and group level access scope (instance scope already existed). As a consequence applications now have the ability to see the relative order of (coherent) changes. The reference manuals contain further details about the behavior related to the ordered_access property.avorite programming language for more details on the PresentationQosPolicy.
- Google Protocol Buffers integration
- Google Protocol Buffers integration for Java5 and ISOC++V2 PSM’s – OpenSplice is capable of using the Google Protocol Buffer (GPB) mechanism for modelling types in a DDS system. This makes it possible to use GPB as an alternative to OMG-IDL for those who prefer to use GPB rather than IDL. With the seamless integration of GPB and DDS technologies there is no need for OMG-IDL knowledge or visibility when working with GPB data models, and no OMG-DDS data-types are needed in the application (no explicit type-mapping between GPB and DDS types is required). Additionally, the GPB data structure can be evolved without breaking deployed programs that are compiled against an ‘old’ format. Check out the OpenSplice Google Protocol Buffers Tutorial for more details.
- Google Protocol Buffers integration for the Tester tool – It is able to display its samples as regular field name and value pairs, just as if it were from a regular IDL defined topic. This feature is enabled for versions of OpenSplice that support Google Protocol Buffers. For more information, please see the new chapter on Google Protocol Buffers in the OpenSplice Tester Guide.
- Durability historical data alignment efficiency improvements
-
- Until recently, a late joining durability service would always request the data set from its master. This would even happens in case the exact same set is already available on disk in its local persistent store. Rather than aligning the data set, the late joining durability service could better inject the data from its own persistent store in this case. This optimization reduces network bandwidth and increases startup time. This feature relies on the ability to compare data sets using the //OpenSplice/DurabilityService/NameSpaces/Policy[ @equalityCheck] attribute in the deployment guide
- The durability service now supports so-called ‘align on change’ functionality. temporary disconnections can cause durability services to get out-of-sync, meaning that their data sets may diverge. To recover from such situations merge policies exist that allow users to specify how to combine diverged data sets when they become reconnect again. Many of these situations involve the transfer of data sets from one durability service to the other. This may generate a considerable amount of traffic for large data sets. In case the data sets did not get out-of-sync during disconnection (because no data was written during the period of disconnection), it is not necessary to transfer data sets from one durability service to the other. A new configuration option has been implemented to force the durability service to compare data sets before alignment. When enabling this check a hashes are calculated of the data sets and compared for equality. When equal, no data will be aligned. This may save valuable bandwidth during alignment. If the hashes are different then the complete data sets will aligned.For further explanation and details on configuration, please check section about ‘prevent aligning equal data sets’ and the //OpenSplice/DurabilityService/NameSpaces/Policy[ @equalityCheck] attribute in the deployment guide
- Durability service static content filtering – The durability service has been extended with support for static filtering of historical data. This allows for a reduction of the amount of aligned historical data if only a subset is required. Only data matching the statically configured filters will be aligned.
-
- Durability service CATCHUP merge-policy – The durability service now supports a new merge policy flavor called CATCHUP, which is similar to the existing REPLACE, but any instances that already exist in your local data-set and still exist in the ‘remote’ data-set, will not be marked with a NEW instance state as a result of the merge. This is useful in scenario’s where one knows that an instance, once in use, is not re-used to describe a different object during the life-time of the data-set. For further explanation and details on configuration, please check section about merge-policies in the deployment guide
- The new Python Scripting Engine is now available. Python Scripting is a scripting environment for running unit tests and adhoc scripts against a OpenSplice environment and is meant as an alternative to the product specific Scenario language found in OpenSplice Tester. Python Scripting connects to the OpenSplice environment through the Configuration and Management API. It is based on the Python scripting language, and requires Jython 2.7.0 or later, the Java-based implementation of Python. For more information, please see the new chapter on the Python Scripting Engine in the OpenSplice Tester Guide.
OpenSplice V6.5.2p1 contains the following new features:
- Support for Ubuntu 14.04 64 bit host to Ubuntu 14.04 for custom ARM V7 Marvell
OpenSplice V6.5.2 contains the following new features:
- Source-specific multicast support for DDSI2E (Prototype) – DDSI2E now supports SSM on platforms that support it (all tier-1 platforms, i.e., Linux, Windows). It is enabled by specifying an SSM address in a network partition instead of a regular multicast, and only used when both reader and writer have it enabled. Interoperability with other vendors is limited to those also supporting the proposal informally known as “D84”. Please note that although we’ll do our best to solve any issues, this feature is not officially supported as it has only been marginally tested and is supplied without official documentation. For more details on how to use this functionality, please check the SSM notes found in the release notes.
- RnR service support for QoS transformations – This feature allows replaying data that was recorded earlier with different QoS settings compared to the QoS settings of the recorded data. For more details check the RnR API guide
- RnR service support to split recordings over multiple files – This feature allows limiting file sizes (particularly useful when recording large volumes of data). For more details check the //OpenSplice/RnRService/Storage/rr_storageAttrXML/MaxFileSize or //OpenSplice/RnRService/Storage/rr_storageAttrCDR/MaxFileSize settings in the Deployment guide
The Deployment Guide and the RnR API Guide are part of the OpenSplice DDS documentation set.
OpenSplice V6.5.1p1 contains the following new features:
- The generation of the OpenSplice system id can now be influenced through settings in the Domain/SystemId section of the OpenSplice XML domain configuration file. The Range element allows limiting the range, the UserEntropy element allows adding an arbitrary string to the initial entropy pool. This can be useful on platforms where all of the default inputs can be the same on two machines or across runs.
OpenSplice V6.5.1 contains the following new features:
- Support for dynamic network partitions for RTNetworking – This feature allows users to amend the configuration of the RTNetworking service at runtime by means of a Topic-API. For more details, check the RTNetworking dynamic partitions guide
- Compression support for durability KV-persistence – The durability service currently has a KV-persistency implementation that allows persisting data to disk in either SQLite or LevelDB. Testing performance indicates that the disk is the bottleneck when trying to achieve a high throughput in some use cases. To improve throughput, samples can now be compressed by durability before persisting them (and obviously uncompressed before re-publishing them in DDS). Durability supports compression as a configurable option for KV persistence. For more details on how to configure it, please check section 4.3.3.9.3 of the Deployment Guide
- Support for Ubuntu 14.04 Linux For Tegra Nvidia Tegra K1 CPU ARM Cortex-A15 R3 host and target
OpenSplice V6.5.0p10 contains the following new features:
- Support for Ubuntu 14.04 64 bit host to Ubuntu 14.04 for custom ARM V7
OpenSplice V6.5.0 contains the following new features:
- A major refactoring of the API implementations (Java, C++, C#) to support future maintenance and feature extensions. This does not affect the API signature. A small performance benefit is also introduced.
- Following the introduction of C++ Streams at V6.2, this feature has now been added to the ISO C++ API. The ISO C++ Streams API provides a mechanism for batching samples together into a stream. This has the effect of increasing data throughput due to a reduced overhead which occurs when transmitting samples individually. The samples are appended to a stream and then later flushed which causes the samples to be written together as one batch. It is performant when a large number of samples need to be sent continuously. Full documentation is included in the ISO C++ documentation.
- Due to a bug fix in OpenSplice, Vortex Gateway 2.1.1 (and above)is required to route with OpenSplice V6.5 and above.
OpenSplice DDS V6.4.3 contains the following new features:
- Java 5 language PSM for DDS – Next to the already existing OMG Java IDL language PSM for DDS API, OpenSplice now also supports the new OMG Java 5 language PSM for DDS (see http://www.omg.org/spec/DDS-Java/1.0/). The API is shipped as dcpssaj5.jar (stand-alone) / dcpscj5.jar (CORBA-cohabitated).
- Google Protocol Buffers integration for Java 5 PSM (BETA) – OpenSplice now also supports transparent publishing/subscribing of data types modeled in Google Protocol Buffers IDL (Java5 PSM API only for now). An example on how to use protocol buffers with OpenSplice can be found in the examples/protobuf directory within your OpenSplice installation. More elaborate documentation as well as support for other DDS language bindings will be introduced in future versions of the product.
- Networking bridge service – The new OpenSplice NetworkingBridge is a pluggable service that allows bridging of data between OpenSplice networking services. When a networking service is selected that best suits a specific deployment, sometimes a part of the data needs to be obtained from or disclosed to a system that is using a different kind of networking service. The NetworkingBridge allows DCPSPublications and DCPSSubscriptions to be matched and the related data forwarded between a (secure) RTNetworking system and a DDSI2(E) system and vice versa. More background information about the service as well as details on configuration can be found in the OpenSplice Deployment Guide.
OpenSplice DDS V6.4.2 contains the following new features:
- OpenSplice is now robust against time discontinuities caused by adjusting the clock forward/backward or resuming after being hibernated/suspended. Read Section “Time Jumps” of the Deployment guide for more detailed information.
- Support for QNX 6.5
OpenSplice DDS V6.4.1 contains the following new features:
- The new Launcher tool (accessible from bin/ospllauncher or the Windows Start Menu is available to make the evaluation process of OSPL easier). Only available on Windows and Linux.
- A new Node Monitor application is available that publishes the following system-monitoring data into the OpenSplice backbone:
-
- CPU information and statistics
- Memory statistics
- Network interface information and statistics
- Operating System information
- Process information and statistics
For more information, please see the Node Monitor Guide
-
- DDSI2 secure communication via SSL/TLS is now supported. This uses the OpenSSL library which can be enabled in conjunction with TCP support. The certificates and keys required for communication should be placed in a PEM format file, which is then referenced from the SSL component for the DDS configuration file. The pass phrase for this file should also be configured. By default clients verify servers by checking their X509 security certificates, however server verification of clients can also be configured. It is also possible via configuration to disable the validation of certificates, or enable self signed certificates, which by default are rejected. The set of Ciphers that can be used for encryption can also be configured if required, as can a file used to contain entropy (randomness) for the encryption ciphers. It is recommended that the O’Reilly book “Network Security with OpenSSL” is used as a reference to understand how SSL is best configured and deployed. See the Deployment Guide for further information.
- DDSI can discover entities and can generate builtin topic information. This enables non-OSPL Enterprise nodes in the DDSI network to become visible. Also, in cases where DDSI generates builtin topic information there is no need for durability to align builtin topic information, which saves bandwidth.
- RTnetworking now supports Differentiated Services Code Point (DSCP) field in IP packets on windows.
- Exception handling
Up to this release, in a shared memory deployment mode, each process that used OpenSplice would attempt to clean up its shared resources in case it crashed. If for some reason the clean up failed, some of the shared resources could leak or in some edge cases the process could end up in a deadlock situation while cleaning up. In the V6.4.1 release, a new mechanism has been introduced that allows asynchronous clean-up of shared resources by the splice-daemon. The splice-daemon now detects when crashed processes leave shared resources behind and will try to cleans up if it is certain these resources have been left in a consistent state. In case (part of) the resources have not been left in a consistent state (this happens when a process crashes while modifying shared resources), it will terminate the entire middleware and return an error code.
Together with the introduction of this garbage collection mechanism a new configuration element //OpenSplice/Domain/InProcessExceptionHandling is introduced. This element controls whether processes will try to release its shared resources upon a crash or not. By default processes will try to release resources, this is useful in case of application crashes which are unrelated to DDS operations, it will give any ongoing DDS operations time to become consistent before leaving the system and avoid any unnecessary system shutdown. In case an accurate core file is required this configuration element can be set to TRUE, meaning that processes will terminate immediately and leave all shared resources to be released by the service.
For now, this feature only works on POSIX-compliant operating systems, but in the future this mechanism will be implemented for other operating systems as well.
OpenSplice DDS V6.4.0p4 contains the following new features:
- The ISO C++ PSM API’s has been extended with a QoS provider API that allows users to define QoS settings for DCPS entities in an XML file as standardized in the DDS For Lightweight CCM OMG (DDS4CCM) standard.
OpenSplice DDS V6.4.0 contains the following new features:
- The ISO C++ API has been taken out of beta status and is now the primary C++ API for OpenSplice DDS. Additionally, the new DDS-PSM-CXX specification IDL type mapping is now implemented. This allows simplified usage of IDL generated types through full compatibility with the STL. The older CORBA compatible types are also supported. Please see the ISO C++ Release Notes for further details
- A performance boost has been made to OpenSplice. The libraries are now consolidated to a single dcps library ddskernel, but the other libraries are still available as stubs to avoid user build system changes. Additionally, other optimisations have been introduced to increase performance and reduce CPU.
Note: If you are using a static library OpenSplice build and ‘ddskernel’ is before any of the other dds libraries e.g. -lddskernel -lddsrrstorage -lddsos then you may get unresolved symbols that were previously satisfied by the ‘ddsos’ at the end of the link line. To resolve this move ‘ddskernel’ to the end of the link line. - TCP support for DDSI has been implemented. Configuration options are available to run DDSI over a single connection.
- The CORBA cohabitation libraries have been upgraded to use TAO 2.1. Where customer demand exists for TAO 1.6 support, these have been left at TAO 1.6.
- The DCPS API’s for Java, C, C++ and C# have been extended with a A QoS provider API that allows users to define QoS settings for DCPS entities in an XML file as standardized in the DDS For Lightweight CCM OMG (DDS4CCM) standard. Please see the Reference manuals for more information.
- Support for Visual Studio 2012 and 2013 on both 32-bit and 64-bit Windows platforms.
- Support for Raspberry Pi.
- New evaluation and benchmarking guide and examples. Please see the RoundTrip and Throughput examples.
OpenSplice DDS V6.3.3p2 contains the following new features:
- The DCPS API’s for Java, C, C++ and C# have been extended with a QoS provider API that allows users to define QoS settings for DCPS entities in an XML file as standardized in the DDS For Lightweight CCM OMG (DDS4CCM) standard.
- Support for Visual Studio 2013 on both 32-bit and 64-bit Windows platforms.
OpenSplice DDS V6.3.2 contains the following new features:
- The Durability Service now supports the REPLACE and DELETE merge policies.
- With the REPLACE merge policy it is possible to dispose and delete historical data on a node, and replace it with the transient and persistent data from another node. Immediately after successful completion of the REPLACE merge action the replacement data will be available to late joining readers, the data in the reader queue of existing readers will be disposed and replaced with the replacement data, and the generation count of the replacement data is increased.
- With the DELETE merge policy it is possible to dispose and delete historical data on a node. Immediately after successful completion of the DELETE merge action the historical data in the reader queue of existing readers will be disposed and is not available any more to late joining readers.
Please see the deployment guide for more details.
OpenSplice DDS V6.3.1 contains the following new features:
- The Durability Service has new pluggable persistent stores. In previous versions, XML was allowed on all platforms and Memory Mapped File was also available on Linux only. From V6.3.1, Memory Mapped File is now deprecated. The new persistence stores are:
- The ISO C++ API (beta) has had a new set of features added.
- Support for Yocto Linux on Freescale P4080ds.
OpenSplice DDS V6.3.0 contains the following new features:
- Record and Replay is taken out of beta and now considered a GA service. It includes the following new features:
- Compitability with the DDSI2/DDSI2E Services.
- The ability to remove record and/or replay interest without stopping a scenario.
- The ability to clear the contents of a storage during a scenario.
- DDSI2 and DDSI2E are now taken out of beta and considered as GA services. In completing the work on DDSI2 and DDSI2E, which includes adding support for IPV6, there has been a change to the configuration options. In all previous versions DDSI2 and DDSI2E used “Unsupported”. This has now been changed to “Internal”. Old configuration files will still be supported on V6 series, but a WARNING message will be raised to highlight the deprecated “Unsupported”. The Internal configuration parameters are marked as such as they are subject to change in the future.
- A beta version of the ISO C++ PSM for DDS is now available.
- Performance optimisation for Java and C++ DataReaders to allow them to specify the number of threads to use when demarshalling data. Demarshalling data to a language-binding specific format can take considerable processing depending on the type of the data. Before this change this process was single-threaded and would therefore limit throughput, especially on multi-core platforms. See OSPL-1078 in the API changes section.
- The ospl tool is enhanced (see ospl -help for detailed info). It no longer returns negative error numbers. Its default is no longer stop, but -help.
- Support for kernel mode is added to the RTP support for VxWorks V6 series.
- Support for SMP (Symmetric MultiProcessing) on VxWorks V6 series.
- DLRL is deprecated. It will be removed from the product at V6.4.
OpenSplice DDS V6.2.3 contains the following new features:
- Support for PikeOS 3.1.7 on PowerPC for Windows hosts.
- Support for VxWorks 6.9 on Pentium for Windows hosts.
- Support for VxWorks 6.9 on Pentium3 for Windows hosts.
- Support for VxWorks 6.9 on PowerPC P1010/P1013 for Windows hosts.
OpenSplice DDS V6.2.2 contains the following new features:
- Support for PikeOS 3.3. As part of this, the PikeOS port builds against the BSD Posix library rather than the NewLib implementation which is removed in 3.3.
- Changes to the way read- and take-operations access data. The read- and take-operations now provide data circularly, meaning that these operations will ‘resume’ a previous read just as if read_next_instance was successively called. This way all instances can be read even when for example lower key-values get updated between two read-operations with a max_samples limit.
- Support has been added for kernel mode for VxWorks 6.8 PENTIUM4 target.
- Support has been added for SMP kernels for the VxWorks 6.8 PENTIUM4 kernel mode build.
- Adds configurability for data compression in the networking service. This allows tuning of the existing (zlib) method, adds two alternative fast compressors (lzf and snappy) and provides a plugin api for using other mechanisms.
- Recording and Replay Service (beta version)
A second beta version of the Record and Replay Service. This version supports:- Replay the recorded data with different speeds
- The ability to add time conditions to a command that can delay its processing
- Statistics on the record and replay of data
OpenSplice DDS V6.2.0 contains the following new features:
New product add-ons:
- DDSI-Extended (ddsi2e): DDSI2E is a new beta version of the extended version of PrismTech’s DDSI2 networking service, giving extra features for:
- Network partitions : Network partitions provide the ability to use alternative multicast addresses for combinations of DCPS topics and partitions to separate out traffic flows, for example for routing or load reduction.
- Security : Encryption can be configured per network partition. This allows configuring encrypted transmission for subsets of the data.
- Bandwidth limiting and traffic scheduling : Any number of “network channels” can be defined, each with an associated transport priority. Application data is routed via the network channel with the best matching priority. For each network channel, outgoing bandwidth limits can be set and the IP “differentiated services” options can be controlled.
- OpenSplice Streams : OpenSplice Streams API supports a common data-distribution pattern where continuous flows or streams of data have to be transported with minimal overhead and therefore maximal achievable throughput. For more information see the OpenSplice Streams Reference Manual.
- Recording and Replay Service (beta version)
- Record topics to an xml storage
- Manipulate the recorded data
- Ability to control the recording and replay service remotely
- A new tool (separate installer) to drive the recording and replay service and view its output.
Other new features
- Extensible and Dynamic Topic Types annotations now handled in IDL : As a first step to the implementation of the OMG standard for Extensible and Dynamic Topic Types for DDS, a developer can now annotate their IDL as per the specification and when the implementation of the specification becomes available (OpenSplice DDS V7) then no further IDL changes should be required.
- OpenSplice RMI extensions:
- Instances Management: Requests/Replies topic instances are per-client basis. The topic key is {client_name, client_instance}. To support multithreaded clients a configuration option named ‘–RMIClientThreadingModel’ has been added to take two possible values ‘ST’ (Single Thread) or ‘MT’ (Multi Thread). The MT option will set the history qos to KEEP_ALL and allow then the client to be multithreaded.
- Service activation: The server activation has been changed to decouple the service activation from the service registration. This activation supports two modes: a blocking mode where the run operation blocks the calling thread, and a non blocking mode where the calling thread can perform other tasks after calling “run”.
- Error handling and exceptions: Error reporting has been enhanced with the definition of two new exceptions : INTERNAL_ERROR to report any internal operation failure and SERVICE_NOT_FOUND to report the failure to find a requested service.
- The default Replies waiting timeout has beed increased to 10min (it was set to 1millisec).
- Asynchronous invocation mode has been added, which is similar to the CORBA Asynchronous Messaging Interface (AMI) call-back model, in addition to the conventional synchronous mode. The RMI documentation has been updated and new examples (Printer and HelloWorld) have been added to illustrate the usage of this invocation mode.
For more information see the OpenSplice RMI GettingStarted Guide.
- Windows Services improvements and it is now able to write to the System Event Log, for more details see OSPL-593 in the OpenSplice release notes
Potential upgrade change:
- In previous releases only a subset of the OpenSplice CORBA co-habitation DCPS Java API (dcpscj.jar) was generated using a CORBA ORB. Starting from this release (issue ospl-347), the entire CORBA-Java API is generated by the ORB IDL compiler. This enables customers to use internal types like ReturnCode_t and InstanceHandle_t in a CORBA environment, i.e. Helper and Holder classes are now available for those types as well. This changes the steps required to process your application Topic definition IDL files, to compile the generated and application source code, to run applications, and how Listener classes must be written. Additionally extra care must be taken not to mix the CORBA and Standalone DCPS APIs on the same compilation or VM classpath.
- IDL to Java code generation changes
Given the below IDL definition:/* @file: Foo.idl */
struct Bar {/
long key;/
};/
#pragma keylist Bar key/At OSPL 6.1 the required CORBA-Java DCPS code-generation steps were:
1 / $JACORB_HOME/bin/idl Foo.idl/This produced files:/
BarHelper.java/
BarHolder.java/
Bar.java/2/ $OSPL_HOME/bin/idlpp -C -l java Foo.idl/This produced files:/
BarDataReaderHelper.java/
BarDataReaderHolder.java/
BarDataReaderImpl.java/
BarDataReader.java/
BarDataReaderOperations.java/
BarDataReaderViewHelper.java/
BarDataReaderViewHolder.java/
BarDataReaderViewImpl.java/
BarDataReaderView.java/
BarDataReaderViewOperations.java/
BarDataWriterHelper.java/
BarDataWriterHolder.java/
BarDataWriterImpl.java/
BarDataWriter.java/
BarDataWriterOperations.java/
BarMetaHolder.java/
BarSeqHolder.java/
BarTypeSupportHelper.java/
BarTypeSupportHolder.java/
BarTypeSupport.java/
BarTypeSupportOperations.java/Now at OSPL 6.2 the required steps are:1/ $JACORB_HOME/bin/idl Foo.idlThis step is the same as 6.1 and produces the same files.2/ $OSPL_HOME/bin/idlpp -C -l java Foo.idlThis step is the same command as 6.1 however the files produced are now: BarDataReaderImpl.java
BarDataReaderViewImpl.java
BarDataWriterImpl.java
BarMetaHolder.java
BarTypeSupport.java
FooDcps.idl3/ $JACORB_HOME/bin/idl -I$OSPL_HOME/etc/idl FooDcps.idlThis step is new at 6.2 and processes the *Dcps.idl file now produced by step 2 with the ORB IDL compiler. This produces the below files, per the IDL to Java mapping: BarDataReaderHelper.java *
BarDataReaderHolder.java *
BarDataReader.java *
_BarDataReaderLocalBase.java
BarDataReaderLocalTie.java
BarDataReaderOperations.java *
BarDataReaderViewHelper.java *
BarDataReaderViewHolder.java *
BarDataReaderView.java *
_BarDataReaderViewLocalBase.java
BarDataReaderViewLocalTie.java
BarDataReaderViewOperations.java *
BarDataWriterHelper.java *
BarDataWriterHolder.java *
BarDataWriter.java *
_BarDataWriterLocalBase.java
BarDataWriterLocalTie.java
BarDataWriterOperations.java *
BarSeqHelper.java
BarSeqHolder.java *
BarTypeSupportInterfaceHelper.java
BarTypeSupportInterfaceHolder.java
BarTypeSupportInterface.java
_BarTypeSupportInterfaceLocalBase.java
BarTypeSupportInterfaceLocalTie.java
BarTypeSupportInterfaceOperations.javaFiles marked with an * were previously produced by step 2 (i.e. idlpp); note the file BarTypeSupportOperations.java is no longer produced by any step. - CORBA co-habitation Java DCPS compilation
At 6.1 it was sometimes possible to compile code generated as above and / or applications like:javac -classpath javac -cp .:$OSPL_HOME/jar/dcpscj.jar BarDataReader.javaFor compilation errors to be avoided this must now always be:javac -endorseddirs $JACORB_HOME/lib/endorsed -cp .:$OSPL_HOME/jar/dcpscj.jar BarDataReader.java
…or…
javac -Djava.endorsed.dirs=$JACORB_HOME/lib/endorsed -cp .:$OSPL_HOME/jar/dcpscj.jar BarDataReader.javaSee http://docs.oracle.com/javase/7/docs/technotes/guides/standards/ - Running CORBA co-habitation Java DCPS applications
Because all classes are now properly implementing CORBA interfaces and inheriting from CORBA base classes, derived classes will be required to provide an implementation for all abstract operations mentioned in the generated interface from the LocalObject base.One option is to add no-op implementations of the abstract Object base methods e.g.:public org.omg.CORBA.Object _set_policy_override(org.omg.CORBA.Policy[] policies, org.omg.CORBA.SetOverrideType set_add) { return null; }
public org.omg.CORBA.DomainManager[] _get_domain_managers() { return null; }
public org.omg.CORBA.Policy _get_policy(int policy_type) { return null; }
public org.omg.CORBA.Request _create_request(org.omg.CORBA.Context ctx, java.lang.String operation, org.omg.CORBA.NVList arg_list, org.omg.CORBA.NamedValue result, org.omg.CORBA.ExceptionList exclist, org.omg.CORBA.ContextList ctxlist) { return null;
public org.omg.CORBA.Request _create_request(org.omg.CORBA.Context ctx, java.lang.String operation, org.omg.CORBA.NVList arg_list, org.omg.CORBA.NamedValue result) { return null; }
public org.omg.CORBA.Request _request(java.lang.String operation) { return null; }
public org.omg.CORBA.Object _get_interface_def() { return null; }
public void _release() {}
public org.omg.CORBA.Object _duplicate() { return null; }
public int _hash(int maximum) { return 0; }
public boolean _non_existent() { return false; }
public boolean _is_equivalent(org.omg.CORBA.Object other) { return false; }
public boolean _is_a(java.lang.String repositoryIdentifier) { return false; }
public org.omg.CORBA.Object _get_component() { return null; }
public org.omg.CORBA.InterfaceDef _get_interface ( ) { return null;Alternately, for the case of Listeners, OpenSplice supplies the ListenerBase class as a convenience. When Listeners extend from this base class they are no longer required to implement these operations themselves. So a Listener defined like:public class MyReaderListener implements DataReaderListener {
…could instead be defined:public class MyReaderListener extends org.opensplice.dds.dcps.ListenerBase implements DataReaderListener {
…CORBA & Standalone Java DCPS API jar incompatibilityPreviously the dcpscj.jar & dcpssaj.jar were largely identical and could often reside safely on the same CLASSPATH. In fact, the release.com/.bat script provided with OpenSplice placed both jars on the exported/set CLASSPATH environment variable. This is no longer the case – users must take care to specify the correct jar on their CLASSPATH when building and running applications as they are now incompatible. For this reason the release.com/.bat scripts no longer exports/sets any CLASSPATH value.
- IDL to Java code generation changes
OpenSplice DDS V6.1.1p7 contains the following new features:
- Support for Client Side Durability with Vortex Lite. Vortex Lite can now act provide a persistence capability using a running instance of the OpenSplice Durability Service.
OpenSplice DDS V6.1.1p5 contains the following new features:
- Support for Secure Networking on LynxOS 5.0 added
OpenSplice DDS V6.1.1p3 contains the following new features:
- Support for Linux host to WindRiver Linux PowerPC and x86 targets.
OpenSplice DDS V6.1.1p2 contains the following new features:
- Support for Windows host to VxWorks 6.9 PENTIUM 4 target.
OpenSplice DDS V6.1.1p1 contains the following new features:
- Official support for ElinOS 5.1 with gcc 4.4 for x86
OpenSplice DDS V6.1.1 contains the following new features:
- Official support for RHEL 6.0 platform with gcc 4.4
OpenSplice DDS V6.1.0 contains the following new features:
- A new OpenSplice DDS deployment architecture which offers daemon-less deployment to go alongside the existing daemon (shared memory) deployment is now available. The new daemon-less library mode is what we call a Single Process deployment option where an application will dynamically link at runtime all OpenSplice libraries and services into a single operating-system process. For more information see Chapter 1 of the Deployment Guide. The choice of daemon or daemon-less architecture can be made by simply changing the ospl configuration file, and therefore does not require any application code changes nor re-generation of the application. Users on windows will find this particularly useful to avoid the need to find a free location in shared memory for the nodal administration database.
- OpenSplice RMI, a new set of APIs available with OpenSplice DDS that complement the pub/sub integration pattern of DDS with a new/client server pattern, but over 1 middleware. For more information on this exciting new addition to the OpenSplice DDS product line, please see the OpenSplice RMI Getting Started Guide.
- OpenSplice Tester, a tool aimed at automated regression testing and debugging of OpenSplice DDS based systems is now available. For more information on this exciting new addition to the OpenSplice DDS product line, please see the OpenSplice Tester Guide and/or use the builtin help of the Tester itself.
- Support for data reader TIME_BASED_FILTER Qos Policy
- The OpenSplice configurator is context sensitive to the enabled features and will only allow access to attributes of relevance (for either the community or commercial edition used).
- DDSI2 now allows setting the multicast time-to-live for outgoing packets using the General/MulticastTimeToLive element. Setting the time-to-live differently for each multicast address is not yet possible.
- Code for a plugin for Wireshark, which will allow decoding of Real Time networking packets is provided. For more information see the README in tools/wireshark-plugins/ospl in the distribution.
- New platform support
- Support for Windows x86 64 bit.
- Support for Solaris SPARC 32 bit with gcc compliler.
- Support for RTEMS 4.10.0 on leon3 SPARC architecture.
- Support for LynxOS 5 on PPC architecture.
- Support for PikeOS 3.2 on x86.
- Changes to source code available
- DLRL is now open source.
- SOAP Service is now open source.
- As stated in later 5.x series releases, the DDSIv1 code has been removed. It was replaced by DDSiv2.
- As DDSIv2 is the interoperable standard and open source, Real Time networking is closed source.
- As daemon-less architecture is now commercial quality and open source, shared memory is now closed source.