Skip to content

Releases: hivemq/hivemq-community-edition

2021.3

19 Nov 14:12
Compare
Choose a tag to compare

✨ Improvements

#289 Reduced the memory footprint of client connections
#280 Unified normal and embedded start
#294 Unified normal and embedded shutdown.
#300 Avoid false-positive warnings when starting in embedded mode
#305 Introduced local client state
#295 Added the client's channel to the its connection.

🐞 Bug fixes

#307 Fixed an issue that could cause a memory leak when clients are instantly disconnected after connecting
#316 Corrected an issue that could cause an error during MQTT 3.1 client subscriptions
#302 Adjusted handling of QoS level changes at the publish messages interceptor for increased stability
#313 Significantly reduced heap usage for use cases with high numbers of queued messages
#301 Fixed a bug that caused wrong payloads after stateful start
#310 Fixed an issue which could lead to multiple clients with the same id being connected after a take over
#314 Fixed a bug which could lead to incorrect session take over behavior

ℹ️ Misc

#279 Use Gradle ProGuard plugin and update other plugins
#303 Update to Gradle 7.1.1
#282 Improved CD pipeline
#285 Improved Docker image publication
#288 Changed Keyserver in Dockerfile
#311 Adapt Java download links to the renaming of AdoptOpenJDK to Adoptium.

❤️ Thanks to all contributors

❤️ New Contributors

Full Changelog: 2021.2...2021.3

2021.2

17 Jun 12:22
Compare
Choose a tag to compare

🌟 Features

  • #263 Added a new HiveMQ environment variable pattern that broadens support for environment variables in the configuration of HiveMQ
  • #248 Adjust access to the TLS information of MQTT clients in the HiveMQ extension system
  • #247 Added ability to modify the assigned client identifier in CONNACK interceptors

✨ Improvements

  • #270 Adjusted single subscription removal to significantly improve performance

🐞 Bug fixes

  • #262 Fixed an issue in which memory-mapped files could cause an out-of-memory error.

ℹ️ Misc

  • #266 Updated dependencies

❤️ Thanks to all contributors

2021.1

05 Mar 06:41
Compare
Choose a tag to compare

🌟 Features

  • The retain as published subscription option is now supported for shared subscriptions #245
  • Added option to override the default destination of automatically-generated heap dumps to facilitate troubleshooting in containerized environments #225 #227

✨ Improvements

  • Improved performance and memory usage #233 #234 #237 #243 , especially:
    • Streamlined handling for multiple connected clients to limit memory consumption and increase performance #234 #237
    • Optimized message throughput for subscribers with high publication rates #243
  • Enhanced in-memory persistence performance #233 #235 #244 , including:
    • Reduced GC pressure for better in-memory persistence performance #235
    • Fewer context switches for better in-memory persistence performance #244
  • Improved handling of shared subscriptions that have large numbers of inflight messages #223
  • Improved scaling of clients with the same shared subscription #240
  • Improved payload persistence #226

ℹ️ Misc

❤️ Thanks to all contributors

2020.6

17 Nov 12:28
Compare
Choose a tag to compare

✨ Improvements

  • Improved memory usage when large payloads (10MB+) are published #218

🐞 Bug fixes

  • Limited the size of the RocksDB log files #213
  • Fixed a bug where the Prometheus extension did not return metrics under load #215
  • Fixed automatic creation of a heap dump when HiveMQ runs out of memory #221
  • Fixed an issue where message delivery stopped for one client with a persistent session after a HiveMQ restart #219
  • The embedded artifact refers to the right hivemq-extension-sdk dependency version #222

ℹ️ Misc

❤️ Thanks to all contributors

Related blog post: https://www.hivemq.com/blog/hivemq-ce-2020-6-released/

2020.5

30 Sep 17:28
Compare
Choose a tag to compare

🌟 Features

  • Embedded API for extension which allows you to load a HiveMQ extension directly from any Java application #211

✨ Improvements

  • Sending more DISCONNECT and CONNACK reason codes and reason strings #209
  • Listeners accept connections only after all extension start methods have completed before #202

🐞 Bug fixes

  • Fixed an issue where sending of queued messages to subscribers in a shared subscription could be discontinued #199
  • MQTT 3.x clients are now not allowed to connect with an empty client identifier if this is disallowed in the HiveMQ config #203
  • Ensure that negative CONNACKs are always sent when a connection is refused #203
  • The configured max-keep-alive is now correctly used if the client specifies a greater keep alive value #204
  • The configured max-topic-length is now correctly enforced #207
  • Retained messages with a child level topic now correctly match multi-level wildcard subscriptions #212

ℹ️ Misc

  • Added javadoc badge so you can find the javadoc easier #206

❤️ Thanks to all contributors

Related blog post: https://www.hivemq.com/blog/hivemq-ce-2020-5-released/

2020.4

11 Aug 12:23
Compare
Choose a tag to compare

🌟 Features

  • Extensions can now iterate all retained messages #190
  • Extensions can now set the max queue size per client #191
  • Extensions can now query the arrival timestamp of a PublishPacket #193

🐞 Bug fixes

  • Fixed an issue where HiveMQ always requires a trust store when TLS is configured #192
  • Improved preventDelivery on PublishOutboundInterceptor #196

ℹ️ Misc

  • Updated dependencies #195
  • Build cleanups #189
  • Code cleanups #188

❤️ Thanks to all contributors

2020.3

06 Jul 14:51
Compare
Choose a tag to compare

🌟 Features

  • Embedded API which allows you to use HiveMQ CE in any Java application #164
  • In memory persistences for use cases that want to avoid disk usage #179
    • In memory payload persistence #178
    • In memory queued messages persistence #176
    • In memory retained messages persistence #178
    • In memory session persistence #173
    • In memory subscription persistence #174
  • Extension start priority to control the order in which extensions are started #155

✨ Improvements

  • Enhanced isolation of the parameter objects that are passed to extension interceptors so that different extensions cannot interfere with each other #154
  • Minor memory improvement for fan-out scenarios #154
  • It is now possible to limit the amount of connections via the 'max-connections' configuration #139

🐞 Bug fixes

  • When a ConnectInboundInterceptor is used, MQTT 3.x clients are now not handled as MQTT 5 clients anymore #180
  • Improved takeover handling when multiple concurrent connections share the same client identifier #168
  • Trust store and key store paths now use HIVEMQ_HOME correctly #167

ℹ️ Misc

❤️ Thanks to all contributors

Related blog post: https://www.hivemq.com/blog/hivemq-ce-2020-3-released/

2020.2

10 Feb 15:54
549dac9
Compare
Choose a tag to compare

🐞 Bug fixes

  • Adjusted handling of MQTT client connections over TLS to ensure correct connection maintenance #150

❤️ Thanks to all contributors

2020.1

07 Feb 12:36
Compare
Choose a tag to compare

🌟 Features

  • Enhanced authentication #126 #56 #72 #110
    • Notification if HiveMQ starts without security extension
    • Deny authentication if no security extension is present
  • Iteration of subscribers, subscriptions, sessions
    • Iterate all subscribers #24
    • Iterate all subscriptions #29
    • Iterate all client sessions #34
  • Interceptors
  • Admin service #36
  • Client service: disconnectClient with reason code and reason string #89 #63
  • Client settings: configurable inflight window #33
  • Listener names #37

✨ Improvements

  • Performance improvements
    • Improved publish payload persistence performance #105
    • New improved publish payload and retained message persistences #111 #136
    • Topic trees in the retained message persistence #84
    • Improved topic tree performance #17
  • Improved retained message handling #15
  • Improved SSL context handling for TLS 1.3 #70
  • QoS 0 memory limit per client #79
  • A Disconnect packet is now sent to the client that is taken over #101

🐞 Bug fixes

  • All extension tasks have now the correct extension class loader set to ensure access to HiveMQ services and builders #40
  • All CompletableFuture callbacks have now the correct extension class loader set to ensure access to HiveMQ services and builders #102
  • Improved extension task queue to prevent unwanted behavior when the task queue limit is exceeded #68
  • Will messages are now correctly sent for all disconnect reason codes other than a normal disconnect #118
  • Improved listing of interceptors to ensure accurate handling when multiple interceptors are implemented in the same class #133
  • All restriction values are now validated at broker start #77
  • HiveMQ home folder can now contain whitespaces #81
  • Connack reason code BAD_USERNAME_OR_PASSWORD is now correctly mapped #120 #119
  • Building a RetainedPublish from a Publish now works in all cases #104 #103

⚠️ Behavioral changes

  • Default authentication behavior change:
    HiveMQ CE 2020.1 only allows MQTT clients to connect if a security extension is present. For testing purposes, HiveMQ includes a hivemq-allow-all-extension (#142) that authorizes all MQTT clients to connect to HiveMQ. For proper authentication and authorization, you must add an appropriate security extension and remove the hivemq-allow-all-extension. You can download security extensions from the HiveMQ Marketplace or develop your own security extension.

ℹ️ Misc

  • Distributions
    • Docker image #99
    • Jitpack builds for all versions/branches/commits #69
  • Updated netty to 4.1.45.Final #138
  • Code cleanup
    • Improved javadoc for extension SDK #38
    • Unified annotations #141
  • Improved build
    • improved test logging and explicitly set the default charset to UTF-8 #86 #87
    • Improve static code analysis #123

❤️ Thanks to all contributors

2019.1

15 Apr 16:54
Compare
Choose a tag to compare

Initial release of HiveMQ Community Edition