JeroMQ v0.5.2 Release Notes

Release Date: 2020-01-31 // about 4 years ago
  • โž• Added

    • #715: Added a ZCert constructor that takes a Writer as an argument, in order to support writing to the Writer instead of to a file.

    • #716: Added a ZTicket API, as well as a ZTicker API, which combines ZTimer and ZTicket.

    • ๐Ÿ‘ #724: Added support for the XPUB options ZMQ_XPUB_MANUAL and ZMQ_XPUB_VERBOSER.

    • #727: Added a ZSocket constructor that takes a SocketType enum value as an argument.

    • #747: Improvements to ZBeacon:

      • Added startClient and startServer methods, to support restarting the client or server individually.
      • You can now specify the interface address when constructing a BroadcastClient.
    • #755: Added ZCert constructors that take (mandatory) public and (optional) secret keys as arguments.

    ๐Ÿ”„ Changed

    • ๐Ÿ›  Fixes for Android compatibility:

      • #710: Use traditional loops instead of streams.
      • #717: Don't use Map.computeIfAbsent.
      • #736: Use java.util.Iterator instead of lambdas.
      • #752: Various fixes discovered by creating an Android project within the JeroMQ repo for testing purposes.
    • ๐Ÿšš #720: Removed a println debug statement in Poller.rebuildSelector.

    • ๐Ÿ›  #733: Fixed a bug introduced in JeroMQ 0.5.1 where ZPoller.poll was returning -1 instead of 1.

    • ๐Ÿ›  #735: Fixed bugs related to the handling of bytes in the Msg class.

    • ๐Ÿ›  #759: Fixed an IndexOutOfBoundsException that occurs when the number of subscriptions exceeds the HWM.


Previous changes from v0.5.1

  • โž• 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.