2. Upgrading from 3.0.3 to 4.1.0

See Important: How to Use this Guide, if you haven’t already.

The following sections describe how to upgrade from Connext Micro 3.0.3 to Connext Micro 4.1.0. They describe general, wire, and other compatibility issues between Connext Micro 4.1.0 and previous releases. The same steps apply when migrating from 4.0.0 or 4.0.1.

Attention

For important information on new and removed platforms and features in Connext Micro 4.1.0, see Supported Platforms and Programming Languages and What’s New in 4.1.0 in the Connext Micro documentation.

See RTI Connext Performance Benchmarks for performance details in this release.

2.1. Library Compatibility

The structure of Connext Micro libraries changed in 4.1.0. This change affects applications migrating from Connext Micro 3.0.3, 4.0.0, or 4.0.1.

RTI provides Connext Micro 3.0.3 (and earlier) as source code to compile into core libraries, which include all the basic functionality of Connext Micro as well as the required operating system (OS) and network stack integration. We refer to these core libraries as an “integrated libraries.”

Starting with Connext Micro 4.1.0, RTI provides two core library types: Platform Independent Libraries (PILs), which contain the basic Connext Micro functionality, and Platform Support Libraries (PSLs), which include the OS and network stack integration for a specific platform. We refer to these as “split libraries.” RTI provides PILs and PSLs as precompiled binaries, with the option to build your own PSL from source code if desired. For more information, refer to Library types in the Connext Micro documentation.

When migrating an application to Connext Micro 4.1.0, refer to the following subsections for instructions on how to maintain compatibility with split libraries.

2.1.1. Build the PSL (optional)

RTI provides precompiled Connext Micro PSLs for several common platforms. Refer to Supported Platforms and Programming Languages for a list of these platforms. If you plan to use Connext Micro on a supported platform, you can use the provided PSL without building it yourself. The precompiled PSLs are located in the lib/ directory of your Connext Micro installation.

Alternatively, you can build the PSL from source code included in your Connext Micro installation. For instructions, refer to Building the PSL in the Connext Micro documentation.

2.2. Transport Compatibility

Connext Micro 4.1.0 does not automatically register the UDP transport, due to the structure of split libraries. In order to use the UDP transport included in the PSL, you must add the following code to your application before creating a DomainParticipant:

/* Register the UDP transport */
struct UDP_InterfaceFactoryProperty *udp_property;

/* allocate and set udp_property */

RT_Registry_register(registry,NETIO_DEFAULT_UDP_NAME,
        UDP_InterfaceFactory_get_interface(),
        (struct RT_ComponentFactoryProperty*)udp_property,NULL),

DDS_StringSeq_set_maximum(&participant_qos.transports.enabled_transports,1);
DDS_StringSeq_set_length(&participant_qos.transports.enabled_transports,1);
*DDS_StringSeq_get_reference(&participant_qos.transports.enabled_transports,0) = DDS_String_dup("_udp");

DDS_StringSeq_set_maximum(&participant_qos.discovery.enabled_transports,1);
DDS_StringSeq_set_length(&participant_qos.discovery.enabled_transports,1);
*DDS_StringSeq_get_reference(&participant_qos.discovery.enabled_transports,0) = DDS_String_dup("_udp://");

DDS_StringSeq_set_maximum(&participant_qos.user_traffic.enabled_transports,1);
DDS_StringSeq_set_length(&participant_qos.user_traffic.enabled_transports,1);
*DDS_StringSeq_get_reference(&participant_qos.user_traffic.enabled_transports,0)
= DDS_String_dup("_udp://");