Ditto 1.4.0 is API and binary compatible to prior Eclipse Ditto 1.x versions.
Compared to the latest release 1.3.0, the following changes, new features and bugfixes were added.
Senders of live responses may freely choose the status code, since it no longer affects the technical settlement and redelivery of the corresponding live commands.
Ditto sets the header
false for signals that do not anticipate any responses,
so that the header has a consistent meaning regardless of signal type.
Ditto will establish a connection even if the broker has a revoked certificate according to OCSP. Failed revocation checks will generate warnings in the connection log. This is to guard against unavailability of OCSP servers.
topic:entityId was not named correctly. It was resolved with the
name of an entity and not the complete ID. Therefore, a new placeholder
topic:entityName is introduced which reflects correctly what it means.
Each subscriber of Ditto signals by Websocket or other connections is required to declare the labels of acknowledgements it may send. The labels should be unique to the subscriber. Labels of acknowledgements sent via a connection source or issued by a connection target must be prefixed by the connection ID followed by a colon. This is to prevent racing in fulfillment of acknowledgement requests and to detect misconfiguration early.
Acknowledgement label declaration is available in Ditto java client.
Concurrency issues in Ditto loggers and logging adapters are addressed by introducing thread-safe variants.
Search via SSE was disabled due to incorrect initialization. It is enabled again.
AMQP 1.0 connections to a slow broker could accumulate indefinitely messages yet to be published. Now only a fixed number of messages are retained.
There was a bug in Ditto Java client that may cause messages to be handled in a different order than when they are received. It made some search results look empty when they are not.
Acknowledgement labels need to be declared and unique
Websocket connections need to declare the labels of any acknowledgments they may send. The acknowledgement labels should be declared as comma-separated list in the query parameter
declared-acks. Declared acknowledgement labels should be unique to the Websocket connection. Declaring a duplicate label causes the Websocket connection to close after an error in Ditto protocol.
AMQP and MQTT connection sources need to declare the labels of any acknowledgement they may send as a JSON array in the JSON field
declaredAcks. The acknowledgement labels should be prefixed by the connection ID and a colon.
Connection targets of all protocols need to prefix their issued acknowledgements by the connection ID and a colon.
Details are in the documentation.