Releases: hivemq/hivemq-community-edition
2021.3
✨ 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
- @A-Imal
- @DC2-DanielKrueger
- @gitseti
- @LBrandl
- @sauroter
- @schaebo
- @SgtSilvio
- @YannickWeber
- @Florian-Limpoeck
- Also thanks to all code reviewers and all who created valuable issues
❤️ New Contributors
- @FibreFoX made their first contribution in #300
- @Remit made their first contribution in #302
- @busybeetree made their first contribution in #297
Full Changelog: 2021.2...2021.3
2021.2
🌟 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
- @A-Imal
- @DC2-DanielKrueger
- @gitseti
- @LBrandl
- @sauroter
- @schaebo
- @SgtSilvio
- @YannickWeber
- @Florian-Limpoeck
- Also thanks to all code reviewers and all who created valuable issues
2021.1
🌟 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:
- Enhanced in-memory persistence performance #233 #235 #244 , including:
- 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
- @DC2-DanielKrueger
- @Florian-Limpoeck
- @gitseti
- @LBrandl
- @sauroter
- @schaebo
- @SgtSilvio
- @YannickWeber
- Also thanks to all code reviewers and all who created valuable issues
2020.6
✨ 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
- @DC2-DanielKrueger
- @LBrandl
- @sauroter
- @SgtSilvio
- Also thanks to all code reviewers and all who created valuable issues
Related blog post: https://www.hivemq.com/blog/hivemq-ce-2020-6-released/
2020.5
🌟 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
- @Florian-Limpoeck
- @LBrandl
- @sbaier1
- @schaebo
- @SgtSilvio
- Also thanks to all code reviewers and all who created valuable issues
Related blog post: https://www.hivemq.com/blog/hivemq-ce-2020-5-released/
2020.4
🌟 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
❤️ Thanks to all contributors
- @A-Imal
- @Florian-Limpoeck
- @LBrandl
- @sauroter
- @schaebo
- @SgtSilvio
- Also thanks to all code reviewers and all who created valuable issues
2020.3
🌟 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
- 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
- Updated all dependencies #159
- Improved run scripts #153 #156
- Improved systemd service #106 #158
- Improved build #163 #172 #181 #187
❤️ Thanks to all contributors
- @A-Imal
- @brickhof
- @Florian-Limpoeck
- @LBrandl
- @LukasHiveMQ
- @RobinAtherton
- @sauroter
- @sbaier1
- @SgtSilvio
- @YannickWeber
- Also thanks to all code reviewers and all who created valuable issues
Related blog post: https://www.hivemq.com/blog/hivemq-ce-2020-3-released/
2020.2
🐞 Bug fixes
- Adjusted handling of MQTT client connections over TLS to ensure correct connection maintenance #150
❤️ Thanks to all contributors
- @Florian-Limpoeck
- @michaelg9
- @SgtSilvio
- Also thanks to all code reviewers and all who created valuable issues
2020.1
🌟 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
- Interceptors
- ConnectInboundInterceptor #26
- ConnackOutboundInterceptor #30
- PublishOutboundInterceptor #25
- PubackInboundnterceptor #113 #117 #49
- PubackOutboundInterceptor #113 #117 #50
- PubrecInboundInterceptor #114 #117 #53
- PubrecOutboundInterceptor #114 #117 #54
- PubrelInboundInterceptor #115 #117 #55
- PubrelOutputInterceptor #115 #117 #58
- PubcompInboundInterceptor #116 #117 #51
- PubcompOutboundInterceptor #116 #117 #52
- SubscribeInboundInterceptor #28
- SubackOutboundInterceptor #125 #46
- UnsubscribeInboundInterceptor #128 #45
- UnsubackOutboundInterceptor #129 #59
- DisconnectInboundInterceptor #92 #47
- DisconnectOutboundInterceptor #92 #48
- PingreqInboundInterceptor #122 #42
- PingrespOutboundInterceptor #122 #42
- 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 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
- Updated netty to 4.1.45.Final #138
- Code cleanup
- Improved build
❤️ Thanks to all contributors
- @cihanucar
- @dobermai
- @Florian-Limpoeck
- @fraschbi
- @iskerrett
- @LBrandl
- @michaelg9
- @MicWalter
- @RobinAtherton
- @sauroter
- @sbaier1
- @schaebo
- @SgtSilvio
- @YannickWeber
- Also thanks to all code reviewers and all who created valuable issues
2019.1
Initial release of HiveMQ Community Edition