Commit Graph
42 Commits
Author SHA1 Message Date
heavyrain2012 cab3ca0916 wildfire chat server source initial submit 2019-03-16 17:04:23 +08:00
andsel 1ba9eb3613 Moved packages from old io.moquette.server to new io.moquette.broker 2018-11-11 18:06:13 +01:00
andsel 284417ef50 Minor, fixed checkstyle and find bugs warns 2018-11-10 18:31:51 +01:00
andsel e10619813a Removed all the old ProtocolProcessor stuff 2018-11-08 22:18:11 +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 5e4c70edce Fixed issue #412 adding a check on Topic's string length in processPublish 2018-06-28 23:26:56 +02:00
andsel 34a2aca45e Minor, updated copyright date 2018-04-27 20:17:47 +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 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
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 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
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 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
andsel ec6ec09cee Minor fixed comment (#281) 2017-03-19 22:01:23 +01:00
andsel e5c46e7a55 Purge nodes without subscriptions as described by PR #274 2017-03-05 12:37:18 +01:00
Andreas Mager a2e51b2c31 broker/Topic: class added
broker/Topic: String Topics replaced by Topic class
broker/Topic#parseTopic: access set to private
broker/SubscriptionsStoreTest: topic tests moved to own class
broker/TopicTest: containsExactly used
broker/TopicTest: TopicAssert class added
broker/TopicTest$TopicAssert#containsToken: method added
broker/TopicTest$TopicAssert#matches: method added
2017-02-19 18:29:37 +01:00
Andreas Mager e2bcd3aac7 broker/Subscription: empty line removed 2017-02-01 17:27:38 +01:00
Andreas Mager f85d45f796 broker/TreeNode: code formatter used 2017-02-01 17:13:41 +01:00
Andreas Mager 47101ca894 broker/Token: code formatter used 2017-02-01 17:13:41 +01:00
Andreas Mager 4db4663274 broker/SubscriptionsStore: code formatter used 2017-02-01 17:13:41 +01:00
Andreas Mager fdf5a83386 broker/Subscription: code formatter used 2017-02-01 17:13:40 +01:00
andsel 1c64186a00 Switched from Moquette's MQTT codec to Netty's MQTT codec ones 2017-01-28 15:59:44 +01:00
andsel 716c9ac0a0 Minor on logging, removed ugly if(isDebugEnabled()) for debug logging, kept only when the toString generation could potentially take long, and trasformed in tracing logs. Moved Error to Warn log level 2017-01-18 23:28:11 +01:00
andsel 60c28f1ecb Minor, just setted autogenerated random serialVersionUID instead of bad 1L 2017-01-18 22:46:04 +01:00
Luis Barrios d7d97a74d8 Add simple connection management capabilities to the broker. An external codebase will now be able to monitor and close the opened connections. 2017-01-12 17:00:18 +01:00
Luis Barrios 63d106e414 Improve log traces of the subscriptions store. Make sure that no "raw" RuntimeExceptions are thrown, and include proper log traces before any exception is raised. 2017-01-11 10:42:43 +01:00
Luis Barrios 8481fada93 Remove unused imports, raw types and some deprecated method calls.. 2017-01-11 10:16:58 +01:00
Luis Barrios 933763486c Remove rawtypes 2017-01-11 09:05:30 +01:00
andsel 3f0ab75efb Updated copiright to year 2017 2017-01-04 14:37:29 +01:00
andsel 12a3c65c9b Fixed javadoc (issue #164) 2017-01-04 12:52:42 +01:00
andsel b6239b3c5c Changed SUBSCRIPTION processing to be based on concurrent FSM 2016-11-27 21:35:20 +01:00
teranisi 90998c447b Make Subscription class immutable. 2016-10-20 14:23:57 +09:00
andsel 5487303095 Merged parser_commons into netty_parser 2016-02-03 23:20:15 +01:00
andsel dfa75e145f Fixed bug #143 avoid publication try to disconnected clients 2016-01-25 22:21:38 +01:00
andsel 5a1cd97b71 Removed clean session flag from subscription and moved in the correct place (ClientSession) 2015-12-06 19:55:04 +01:00
andsel 80569d5dfe Minor change, added a factory method for ClientTopicCouple built from Subscription 2015-12-06 19:31:36 +01:00
andsel 9ce9a6597f Architechtural refactory, moved subscription out of tree and into db store 2015-12-06 11:43:29 +01:00
andsel 810d8a1af8 Removed TreeNode's parent reference to avoid maintaning a reference that could keep live big trees (solves #119 and #126) 2015-12-01 22:59:38 +01:00
andsel 371c740321 Moved project package from org.eclipse.moquette to io.moquette 2015-11-20 21:30:59 +01:00