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
- The release notes provided online at http://docs.pushtechnology.com/docs/5.9.24/ReleaseNotice.html
- The API documentation located at http://docs.pushtechnology.com/5.7
API affected | Removed feature | Suggested alternative |
---|---|---|
Unified API | Topics.Listener and Messages.Listener |
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 |
- 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
At release 5.7, the Diffusion server is tested and supported on Java HotSpot™ Development Kit 8 (latest update).
Java 7 is not supported.
- Use the graphical or headless installer to install the new version of Diffusion.
For more information, see Installing the Diffusion server.
- You can copy your existing license file from your previous installation to the etc directory of your new installation.
- 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
- 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.
This page last modified: 2016/10/05