Version 0.10: Version 0.9: Moved canRead check to topic from publish phase to subscribe (#144) Added javadoc and src jars creations for JCenter/Maven central Added persisting of clean session flag for already existing client session (fix issue #145) Moved the message logic management fo FSM, to better control the concurrency. Changed default config to use in memory store and not default moquette.mapdb Version 0.8: Introduced authenticator and authorizator implementations. Fixed bug, doesn't close the channel when connect doesn't contains a valid proto name, issue #65 Fixed bug, does not check for zero length topic (filters) in PUBLISH, SUBSCRIBE, and UNSUBSCRIBE, issue #67 Fixed issue #69 Fixed bug #68, UNSUBSCRIBE has to fail on bad topicFilter names Fixed bug #81, on stop of moquette broker it doesn't shutdown due to no shutdown of ringbuffer used on the back of ProtocolProcessor Moved config to be not only filesystem based, but also classpath and memory (fix issue #73) Switched from commit persistence on every change to time based to fix delay in handling many msgs/sec (fix issue #79) Changed willMessage and password in CONNECT message from String to byte[] (fix issue #94 and #95) Fixed ugly empty session storage, avoid fake NullObject empty subscription subscription Added check to avoid creation of LostConnectionEvents for not yet completed connects (fix issue #88) Removed LMAX ringbuffer to use multi threading with persistent (copy on write) data structures Fixed bug that on connection stolen dropped also the new connection (fix issue #108) Refactored the storage part to be more rational and use ClientSession concept Added config property 'autosave_interval' (issue #97) Removed leaking ref to parent's node (issue #119 and #126) Added internal publish once the broker is embedded (issue #113) Removed client active/not active state from persistence (issue #118) Avoid deletion of client descriptor in case of multiple clients with same clientID (issues #116 and #124) Removed a queue per client of inFlightIds (never cleaned) in favor of single atomic generator Version 0.7: Fix issue #38, added aligned to MQTT 3.1.1 Refactored big event switch to @Annotation dispatcher Switched from HawtDB to MapDB Fixed bug that didn't update client subscription on persistent store so that on server restart there where ghost subscriptions. Fixed Issue #11, multiple republish of persisted QoS1/2 messages on clients reconnections. Refactored the publish logic for QoS 1 2 to try to be more readable Added packetIdentifier storage and generation Fixed issue #16, bad packetId for will messages with qos > 0 Added store path variable "persistent_store" to configuration file (picked from Steven Warwick fork) Removed OSGi bundle, developer time burner Fixed github issue #30, returning error on mapdb file not deleted that corrupt reiterated builds Added handling of allow_anonymous clients (as in mosquitto issue #34) Modified the password_file format to use password stored in sha256 and not plain text Added ACL file for topic read|write operations. Removed cause of leakage of Netty Sessions (fix issue #39) Cleaned Netty's stuff reference from Events used in Disruptor (fix issue #40) Bad assignment of PacketID during publish to subscribed QoS0 topics (fix issue #38) Fixed duplicated subscription with different QoS same client and topic (fix issue #49) Fixed UNSUBSCRIBE that missed to remove the subscription from the persistent store (fix issue #50) Fixed issue on multiple publish for overlapping subscription by the same client (fix issue #52). Moved the authorization check before dropping an already connected client with same clientID (fix issue #44). Fixed subscription tree that was unable to update clean session flag on subs with same client, topic and qos (fix issue #55) Fixed overwriting of published qos in forward publish loop (fix issue #56) Version 0.6: Fix issue #42, bad password file path composition Fix issue #43, missed topic case (finance/+ does has to match finance) Integrated WebSocket support (issue #37) Integrated SSL support (issue #41) Fixed issue #40, check Logging inside the Felix OSGi Fixed issue #46, implement correct behaviour for Will stuff Splitted stores to persist messages and sessions into different interfaces Renamed some methods in sessions store Moved logging conf and slf4j-log4j deps out of broker to let it use the container's log configuration Version 0.5: Fix issue 20 (no flush of message on PINGREQ) Fix issue 21 (bad channel timeout handler) Created a self contained distribution package (issue 22) Fix issue 28, OSGi-fied the broker Fixed issue #31 missed to insert the hawtdb jars Added a separate mvn module to host the OSGi bundle declaration Fixed issue #30 Added password file for identity management on connect (Fix #23) Version 0.4: Dropped support for MINA Fix Issue 15 (bad re-activation of client's subscriptions after a recconection) Fix Issue 16 (bad re-publish of stored messages after a client reconnection) Fixed a bug in unsubscribe due to missed clientID check Fixed Issue 18 (descriptor of a disconnected (not active) client) Bug fix for override subscriptions to the same /topic but with different QoS (latest wins) Added test to check the downgrading of QoS of messages sent to registered subscribers (fixed a bug of double delivery of QoS2 messages) Version 0.3: Added Netty IO connectors Dropped tests based on Fuse source client lib moving to Paho java client Version 0.2: Fixed issues (10, 11, 12, 13) Fixed interdependency bug in test