Just a second...

Upgrading from version 5.6 to version 5.7

Consider the following information when upgrading from Diffusion™ version 5.6 to version 5.7.

Upgrading your applications

Server-side components

Recompile all Java™ application components that are deployed to the Diffusion server, such as publishers and authorization handlers, against the new version diffusion.jar file. This file is located in the lib directory of your new Diffusion server installation.

Some features that your Java application components might use have been removed or deprecated. Pay attention to new deprecation warnings and compilation failures that occur during recompilation and review the API changes information in the following section to see if these changes affect your applications.

Clients

You can choose not to recompile your client applications and continue to use client libraries from a previous release. If you choose to use client libraries from a previous release, ensure that the libraries are compatible with the new server. For more information, see Interoperability.

You can choose to upgrade your client applications to use the new client libraries. To do this, recompile the client applications against the client libraries located in the clients directory of your new Diffusion server installation and repackage your client application with the new library.

Alternatively, the Java library is available in the Push Public Maven Repository and the JavaScript® library from NPM.

Some features that your client applications might use have been removed or deprecated. Review the API changes information in the following section to see if these changes affect your applications.

API changes

Further information about removed or deprecated features is available in following locations:
The following table lists API classes and methods that have been removed. If you attempt to recompile application code that uses these classes or methods against the version 5.7 APIs, it fails. Rewrite your application code to not include these features.
Table 1. API features removed in version 5.7
API affected Removed feature Suggested alternative
Unified API Topics.Listener and Messages.Listener  
The following table lists API classes and methods that have been deprecated. If your application code uses these classes or methods, consider rewriting your application code to not include these features.
Table 2. API features deprecated in version 5.7
API affected Deprecated feature Suggested alternative
All clients The HTTP Full Duplex transport Use WebSocket connections instead.
The C Classic API All use of this API Use the C Unified API instead.
All APIs Service topics and their associated classes and methods. Use the Messaging and MessagingControl features of the Unified API to send point-to-point requests.
All APIs Protocol buffer topics and their associated classes and methods. Use binary topics to send any binary data, including protocol buffers. Handle the serialization and deserialization of those protocol buffers in the clients.
All Unified API clients Content encoding Use a third-party library to encrypt or compress all or part of the data used to create your message content.
All Unified API clients getStreamsForTopic() method in the PTDiffusionTopicStreamDelegate class None
Apple® Unified API diffusionTopicStream:didUnsubscribeFromTopicPath:reason: method in the Topics class diffusionStream:didUnsubscribeFromTopicPath:reason:
Configuration API ClientServiceConfig.isClosingCallbackRequests and ClientServiceConfig.setCloseCallbackRequests None
The following list includes behavior that has changed in the API. If your application code relies on the previous behavior, rewrite your application code to take into account the new behavior.
  • If the connection or write timeouts are configured to be greater than one hour, a warning message is output and a timeout of one hour is used.

Upgrading your server installation

Note:

At release 5.7, the Diffusion server is tested and supported on Java HotSpot™ Development Kit 8 (latest update).

Java 7 is not supported.

To upgrade your Diffusion server installation, complete the following steps:
  1. Use the graphical or headless installer to install the new version of Diffusion.

    For more information, see Installing the Diffusion server.

  2. You can copy your existing license file from your previous installation to the etc directory of your new installation.
  3. You can copy most of your existing configuration files from the etc directory of your previous installation to the etc directory of your new installation. When you do, consider making the following changes:
    • In the Management.xml file remove the register-topics element. This element was deprecated and a no-op, but has now been removed from the schema.
    • In the Server.xml file ensure that the connection timeout and write timeout are set to less than one hour. If these values are greater than one hour, a value of one hour is used and a message is written to the log. In future releases, timeouts greater than one hour will not be valid configuration and the server will not start.
    • In the Security.store, to maintain the previous security configuration, grant the select_topic permission to all sessions that already have read_topic permission.
      For example, in the default Security.store file, change the following lines:
      set "CLIENT" default topic permissions [READ_TOPIC, SEND_TO_MESSAGE_HANDLER]
      ...
      set "OPERATOR" topic "Diffusion" permissions [READ_TOPIC, SEND_TO_MESSAGE_HANDLER]
      Add the select_topic permission to the CLIENT and OPERATOR roles:
      set "CLIENT" default topic permissions [SELECT_TOPIC, READ_TOPIC, SEND_TO_MESSAGE_HANDLER]
      ...
      set "OPERATOR" topic "Diffusion" permissions [SELECT_TOPIC, READ_TOPIC, SEND_TO_MESSAGE_HANDLER]
      As this configuration grants the CLIENT role to all sessions, the session inherit the select_topic permission.

Behavior changes at the Diffusion server

The following list includes behavior that has changed at the server. If your solution relies on the previous behavior, adjust your solution to take into account the new behavior.
  • If the connection or write timeouts are configured to be greater than one hour, a warning message is output and a timeout of one hour is used.