Commit Graph
229 Commits
Author SHA1 Message Date
andsel 5efbe8e8bf Ported the config for SSL and websocket into new broker 2018-11-02 17:21:35 +01:00
andsel 176b986c47 Introduced interceptors notification into new broker 2018-11-02 16:49:50 +01:00
andsel a2266e5bbe Rearchitected the broker, switching from ProtocolProcessor and publisher to MQTTConnection, Session and PostOffice 2018-11-02 12:33:59 +01:00
andsel ba8ad02289 Dropper Hazelcast because Moquette is not designed to be clusterizable
Separated the connect/disconnect logic into ConnectHandler/DisconnectHandler

Moved the sending of CONN ACK after session creation/update

Moved the will message management inside the session class
2018-07-20 18:19:10 +02:00
andsel 8a03dd8131 Fixed issue #415 by adding a configuration flag to force subscription re-authentication on client connect 2018-07-19 17:23:18 +02:00
andsel 5e4c70edce Fixed issue #412 adding a check on Topic's string length in processPublish 2018-06-28 23:26:56 +02:00
andsel 88e0ccf20e On retained republish message adapt the QoS to the one specified during subscription (fix issue #411) 2018-06-28 00:26:42 +02:00
andsel ea0ad14374 Fixed issue #410 reserved flag set in unsubscribe 2018-06-26 15:00:36 +02:00
Maik Scheibler d50a291366 enable the usage of Netty OpenSSL provider implementation
Signed-off-by: Maik Scheibler <[email protected]>
2018-06-22 12:48:06 +02:00
andsel 3c9cc5fa8e Fixed issue #380, now catch and print the full stack trace on error 2018-05-07 20:26:40 +02:00
andsel 34a2aca45e Minor, updated copyright date 2018-04-27 20:17:47 +02:00
andsel 6bbeba1612 Moved avay from ConnectionDescriptorStore unused methods and stuff that hasn't nothing about ConnectionDescriptor storing 2018-04-27 20:16:11 +02:00
andsel 99f0612209 Minor, fixed logging level to be more usefull for distribution 2018-04-27 15:56:26 +02:00
andsel fc59b51558 Fix #381, avoid t print password on bad signin during connect 2018-04-27 13:08:12 +02:00
andsel 5456431dd4 Fixed bug #400 a transient session (clean=true) that tried to lookup session from persistent store 2018-04-27 12:44:48 +02:00
andsel 033a428184 Fixed checkStyle and ErrorProne warns 2018-04-26 22:23:06 +02:00
Marcus Williford 1bc6bdbbce Fix for CTrie TNode exception and other improvements to CTrie related
subscribe and unsubscribe issues

-  Added unit tests to cover a few more cases which I my system ran into
   under concurrent load testing.
-  Remove and detect TNode, implement more of
   http://bravenewgeek.com/breaking-and-entering-lose-the-lock-while-embracing-concurrency/
   related to TNode state
-  NOTE:  The graph is left with nodes which have no subscriptions, the
   TNode cleanup only cleanss the last node for now.  We should
   autoprune further up by placing more TNodes and pruning them off.
-  Adding concurrency Sets and Lists to CNode, because those ARE edited
   and read in parallel in our use-case.  Before a CNode is CAS
   replaced, more than 1 thread may be attempting to modify and read the
   subscriptions and children CNode datastructures, and I hit this
   during testing.
-  Fixed an issue where we unsubscribe all sub-topics if an unsubscribe
   is sent on a parent node.
-  Fixed an issue with unsubscribing multiple times when no subscrition
   exists, we should handle this gracefully.
2017-10-24 09:45:12 -07:00
andsel 3293478dd7 Fixed issue #362 2017-10-20 12:27:50 +02:00
andsel ba2b8b44d3 Fixed issue #360, used a DB connection pool instead of long lasting Drivers connections 2017-10-20 12:25:10 +02:00
andsel f7b213a677 Added tracking of closed session time and expired session cleaner for clients that never reconnects but had clean session flag = false 2017-10-20 11:48:34 +02:00
andsel 1b272e5849 Big refactory on session management:
- introduced a unique point of access and management of sessions state (SessionRepository)
- separated behaiour for sessions with clean flag to false into DurableSession
- separated behaviour for session with clean flag to true into TransientSession
2017-10-14 17:37:26 +02:00
Andrea Selva ed87abaaaa Merge pull request #340 from nMoncho/ACL_COMMENTS
#310 - Allow for topic/patterns with '#' and end of line comments
2017-08-23 10:02:29 +02:00
Gustavo De Micheli 89174178c6 #310 - Allow for topic/patterns with '#' and end of line comments 2017-08-23 09:43:51 +02:00
Andrea Selva d6aca1d2a1 Merge pull request #342 from hylkevds/master
Terminate processor on shutdown.
2017-08-19 14:36:46 +02:00
Dolychuck a62f0aa6f3 Fix issue #171 2017-08-05 12:05:45 -07:00
Hylke van der Schaaf 55168e24db Terminate processor on shutdown. 2017-08-03 11:43:01 +02:00
andsel d7023ae81b Extracted common subscriptions directory interface and switched to CTrie inspired implementation 2017-07-29 17:10:01 +02:00
andsel 23b903e2f2 - moved and cleaned many part of Paho integration tests to unit tests
- fixed bug that on conflicting connect close old channel but not dropped from ConnectionDescriptors cache
2017-06-29 17:00:14 +02:00
andsel 03c4874a50 Moved tests from integration to unit and extracted and simplified common test part in ProtocolProcessor unit test 2017-06-29 16:59:56 +02:00
Andreas Mager 8e8a295200 broker/BrokerInterceptor: ByteBuf.retain & release added
broker/NettyMQTTHandler: ByteBuf.release added
broker/HazelcastListener: release added
broker/pom: leak detection enabled for surefire tests
broker: ReferenceCountUtil.release used
2017-06-27 16:28:38 +02:00
andsel 53ec8e5b60 Removed the constraint on client queues to be BlockingQueue but simple Queue 2017-06-20 21:55:59 +02:00
Andreas Mager fb9765304c Java Version set to 1.8
anonymous types replaced by lambda's
Method references used instead of Lambda's
Explicit type replaced by <>
travis.yml updated to java 1.8
2017-06-19 17:07:05 +02:00
andsel 16a9a0ccd0 Fixed runtime loading of persistence implementation 2017-06-18 11:01:25 +02:00
andsel 949e531448 Switched to Netty 4.1.12 to use MqttMessageBuilders 2017-06-10 16:55:00 +02:00
Andrea Selva f4afd451ab Merge pull request #314 from hylkevds/master
Terminate interceptor on shutdown.
2017-06-10 16:00:12 +02:00
Andreas Mager fcb7870a38 MemorySessionStore: Session class added
MemorySessionStore$Session: clientSession field added
MemorySessionStore#pendingAck: secondPhaseStore & inflightStore &
inboundFlightMeessageToGuid added

ClientSession#cleanup missed these messages
SubscriptionsDirectoryTest: fixed
SessionsStore#dropInFlightMessagesInSession: changed to cleanSession
2017-06-02 18:09:23 +02:00
andsel d9ff81131c Merged topic subscription search and publish into single MessagePublisher method
First step on implementing H2 storage

Minor, fixed not imported class

Cleaned MessageStore interface to avoid duplication of methods used in couple. Switched from guid + message to move messages

Separated ISubscriptionsStore from ISessionStore

Implemented H2 queue
2017-06-02 10:13:34 +02:00
Hylke van der Schaaf 76c2857d48 Terminate interceptor on shutdown. 2017-05-19 16:18:20 +02:00
andsel 85a787993c Added missing persist on QoS1 retained publish 2017-04-30 11:31:05 +02:00
andsel 406ffd10db Merged topic subscription search and publish into single MessagePublisher method 2017-04-29 10:59:34 +02:00
Andreas Mager 9221a87812 editorconfig: max line length set
max line length warnings removed
missing Copyright added
useless publics removed
unmaintainable Javadoc tags: @author removed
helper class warnings removed
field default value initialization removed
Multiple warnings removed
pref: checkstyle warnings removed
Checkstyle will fail the build process if it detects violations
switch default cases error logger added
2017-04-13 22:16:57 +02:00
andsel 6dc762f47f Introduced the FlightZone concept (inbound and outbound) and separated logic of storage system. 2017-04-09 19:22:50 +02:00
andsel 5c6889fbd5 Separated persistence layer, created submodule for MapDB persistence letting the broker use the in-memory message store 2017-04-01 16:21:34 +02:00
Andreas Mager dd106434ce broker/Server: ScheduledExecutorService moved from MapDBPersistentStore
broker/ProtocolProcessorBootstrapper: tabs removed
broker/MapDBPersistentStore: bonding to Server removed
2017-03-22 23:16:14 +01:00
Andrea Selva 6ca8108f1e Merge pull request #286 from fbeister/master
Prevent usage of MsgId 0 when wrapping around
2017-03-22 22:30:00 +01:00
Andrea Selva 451b5db941 Merge pull request #280 from fjcyue/master
using reader idle to trigger the will message.
2017-03-22 22:20:22 +01:00
Frederic Beister 76fb5cee72 Prevent usage of MsgId 0 when wrapping around 2017-03-21 14:26:13 +01:00
andsel c659a54158 Minor, just code layout 2017-03-20 21:58:18 +01:00
Andreas Mager 63d2f2dd69 broker/MapDBPersistentStore: Interfaces used for the Constructors
broker/IStore: Interface added for MapDBPersistentStore
broker/ProtocolProcessorBootstrapper: class loader for store added
broker/ISessionsStore#mapToGuid: moved to IMessagesStore
broker/ProtocolProcessorBootstrapper: getter used for SessionStore
broker/Server: getter for processor added
broker/ProtocolProcessor: getter added for Stores
2017-03-20 13:04:14 +01:00
andsel ec6ec09cee Minor fixed comment (#281) 2017-03-19 22:01:23 +01:00