|
| 1 | +--- |
| 2 | +title: Release notes 1.4.0 |
| 3 | +tags: [release_notes] |
| 4 | +published: true |
| 5 | +keywords: release notes, announcements, changelog |
| 6 | +summary: "Version 1.4.0 of Eclipse Ditto, released on 28.10.2020" |
| 7 | +permalink: release_notes_140.html |
| 8 | +--- |
| 9 | + |
| 10 | +Ditto **1.4.0** is API and [binary compatible](https://github.com/eclipse/ditto/blob/master/documentation/src/main/resources/architecture/DADR-0005-semantic-versioning.md) |
| 11 | +to prior Eclipse Ditto 1.x versions. |
| 12 | + |
| 13 | +## Changelog |
| 14 | + |
| 15 | +Compared to the latest release [1.3.0](release_notes_130.html), the following changes, new features and |
| 16 | +bugfixes were added. |
| 17 | + |
| 18 | + |
| 19 | +### Changes |
| 20 | + |
| 21 | +#### [Status codes of live responses are no longer interpreted for acknowledgement requests](https://github.com/eclipse/ditto/pull/833) |
| 22 | + |
| 23 | +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. |
| 24 | + |
| 25 | +#### [The header response-required is always set to false for responses and events](https://github.com/eclipse/ditto/pull/850) |
| 26 | + |
| 27 | +Ditto sets the header `response-required` to `false` for signals that do not anticipate any responses, |
| 28 | +so that the header has a consistent meaning regardless of signal type. |
| 29 | + |
| 30 | +#### [OCSP is optional for connections](https://github.com/eclipse/ditto/pull/854) |
| 31 | + |
| 32 | +Ditto will establish a connection even if the broker has a revoked certificate according to OCSP. |
| 33 | +Failed revocation checks will generate warnings in the connection log. |
| 34 | +This is to guard against unavailability of OCSP servers. |
| 35 | + |
| 36 | +#### [Placeholder topic:entityId renamed to topic:entityName](https://github.com/eclipse/ditto/pull/859) |
| 37 | + |
| 38 | +The placeholder `topic:entityId` was not named correctly. It was resolved with the |
| 39 | +name of an entity and not the complete ID. Therefore a new placeholder |
| 40 | +`topic:entityName` is introduced which reflects correctly what it means. |
| 41 | + |
| 42 | +### New features |
| 43 | + |
| 44 | +#### [Acknowledgement label declaration](https://github.com/eclipse/ditto/issues/792) |
| 45 | + |
| 46 | +Each subscriber of Ditto signals by Websocket or other connections is required to declare the labels of acknowledgements |
| 47 | +it may send. The labels should be unique to the subscriber. Labels of acknowledgements sent via a connection source or |
| 48 | +issued by a connection target must be prefixed by the connection ID followed by a colon. This is to prevent racing in |
| 49 | +fulfillment of acknowledgement requests and to detect misconfiguration early. |
| 50 | + |
| 51 | +Acknowledgement label declaration is available in [Ditto java client](https://github.com/eclipse/ditto-clients/pull/98). |
| 52 | + |
| 53 | +### Bugfixes |
| 54 | + |
| 55 | +Several bugs in Ditto 1.3.0 were fixed for 1.4.0.<br/> |
| 56 | +This is a complete list of the |
| 57 | +[merged pull requests](https://github.com/eclipse/ditto/pulls?q=is%3Apr+milestone%3A1.4.0), including the fixed bugs.<br/> |
| 58 | +Here as well for the Ditto Java Client: [merged pull requests](https://github.com/eclipse/ditto-clients/pulls?q=is%3Apr+milestone%3A1.4.0) |
| 59 | + |
| 60 | +#### [Thread-safe loggers added](https://github.com/eclipse/ditto/issues/773) |
| 61 | + |
| 62 | +Concurrency issues in Ditto loggers and logging adapters are addressed by introducing thread-safe variants. |
| 63 | + |
| 64 | +#### [Search via SSE enabled](https://github.com/eclipse/ditto/issues/822) |
| 65 | + |
| 66 | +Search via SSE was disabled due to incorrect initialization. It is enabled again. |
| 67 | + |
| 68 | +#### [Memory consumption of outgoing AMQP connections limited](https://github.com/eclipse/ditto/pull/853) |
| 69 | + |
| 70 | +AMQP 1.0 connections to a slow broker could accumulate indefinitely messages yet to be published. |
| 71 | +Now only a fixed number of messages are retained. |
| 72 | + |
| 73 | +#### [Java client: Message ordering fixed](https://github.com/eclipse/ditto-clients/pull/97) |
| 74 | + |
| 75 | +There was a bug in Ditto Java client that may cause messages to be handled in a different order |
| 76 | +than when they are received. It made some search results look empty when they are not. |
| 77 | + |
| 78 | +## Migration notes |
| 79 | + |
| 80 | +### Acknowledgement labels need to be declared and unique |
| 81 | + |
| 82 | +- Websocket connections need to declare the labels of any acknowledgments they may send. |
| 83 | + The acknowledgement labels should be declared as comma-separated list in the query parameter `declared-acks`. |
| 84 | + Declared acknowledgement labels should be unique to the Websocket connection. Declaring a duplicate label |
| 85 | + causes the Websocket connection to close after an error in Ditto protocol. |
| 86 | + |
| 87 | +- AMQP and MQTT connection sources need to declare the labels of any acknowledgement they may send as a JSON array |
| 88 | + in the JSON field `declaredAcks`. The acknowledgement labels should be prefixed by the connection ID and a colon. |
| 89 | + |
| 90 | +- Connection targets of all protocols need to prefix their issued acknowledgements by the connection ID and a colon. |
| 91 | + |
| 92 | +Details are in the [documentation](basic-acknowledgements.html#issuing-acknowledgements). |
0 commit comments