JeroMQ v0.5.1 Release Notes

Release Date: 2019-04-03 // almost 5 years ago
  • โž• Added

    • ๐Ÿ‘ #677: ZPoller now supports registering multiple event handlers on a single socket or channel.

    • #685, #687: ZMQ.Socket has new methods that encode and decode messages based on a picture pattern which is compatible to ZProto: sendPicture, recvPicture, sendBinaryPicture and recvBinaryPicture.

    • #692: Added an overload of the ZBeacon that has an additional serverAddress option so that the broadcast address can be specified. The default value is still 255.255.255.255.

    • #694: Added a draft ZNeedle helper class for serialization and deserialization within a frame.

    • #697: Added encoding/decoding of the COMMAND flag when using CURVE encryption.

    • #698: Added a Msg.putShortString method.

    ๐Ÿ”„ Changed

    • #671, #672: In the internal zmq.io.StreamEngine class, a ZError.InstantiationException is now thrown when a decoder or encoder cannot be instantiated. Previously, a stacktrace would be printed and null would be returned instead of a decoder/encoder instance.

    • #673: zmq.Mailbox.recv now handles EINTR by returning null. This can happen, for example, if the channel is closed.

    • ๐Ÿ›  #679: Fixed a file descriptor leak when opening a TCP connection.

    • #680: Various improvements to support for IPv6 and name resolution.

    IPv6 is now enabled if the properties java.net.preferIPv4Stack=false or java.net.preferIPv6Addresses=true are set.

    • ๐Ÿ›  #684: Fixed a bug where zmq.Msg.getBytes was writing to an internal buffer instead of the given buffer.

    • ๐Ÿ›  #688: Javadoc fixes.

    • ๐Ÿ›  #691: Fixed a bug where timers would accumulate in the PollerBase when failed connections were retried, causing a memory leak.

    • ๐Ÿ›  #693: Fixed a Java 8-related compilation error.

    • ๐Ÿšš #702: Removed all usage of java.util.function, java.util.stream, java.util.Objects and java.util.Optional, which are known to cause problems for some versions of Android. Replaced their usage with internal implementations.