Commit Graph
90 Commits
Author SHA1 Message Date
andsel 949e531448 Switched to Netty 4.1.12 to use MqttMessageBuilders 2017-06-10 16:55:00 +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
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
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
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 e42e1257c9 broker/MemorySessionStore: code formatter used 2017-02-01 17:13:43 +01:00
Andreas Mager 2b9a21d475 broker/MapDBPersistentStoreTest: code formatter used 2017-02-01 17:13:43 +01:00
Andreas Mager 9e6cfe4002 broker/SubscriptionsStoreTest: code formatter used 2017-02-01 17:13:43 +01:00
Andreas Mager 3351b92ea6 broker/FileAuthenticatorTest: code formatter used 2017-02-01 17:13:43 +01:00
Andreas Mager a946357ea3 broker/DBAuthenticatorTest: code formatter used 2017-02-01 17:13:43 +01:00
Andreas Mager f4120433d9 broker/AuthorizationsCollectorTest: code formatter used 2017-02-01 17:13:43 +01:00
Andreas Mager 25f9bdd9b6 broker/ACLFileParserTest: code formatter used 2017-02-01 17:13:43 +01:00
Andreas Mager a0a758949e broker/ProtocolProcessorTest: code formatter used 2017-02-01 17:13:43 +01:00
Andreas Mager 5125132f23 broker/ProtocolProcessor_CONNECT_Test: code formatter used 2017-02-01 17:13:43 +01:00
Andreas Mager 5206cc3df7 broker/NettyChannelAssertions: code formatter used 2017-02-01 17:13:43 +01:00
Andreas Mager 65faa69852 broker/MockReceiverChannel: code formatter used 2017-02-01 17:13:43 +01:00
Andreas Mager 83dc0f99b6 broker/MockAuthenticator: code formatter used 2017-02-01 17:13:43 +01:00
Andreas Mager edc2515caa broker/MemoryStorageService: code formatter used 2017-02-01 17:13:43 +01:00
Andreas Mager be8a2f4ca4 broker/MemoryMessagesStore: code formatter used 2017-02-01 17:13:42 +01:00
Andreas Mager 0bf059afcf broker/BrokerInterceptorTest: code formatter used 2017-02-01 17:13:42 +01:00
Andreas Mager 47c76fafc1 broker/ClientSessionTest: code formatter used 2017-02-01 17:13:42 +01:00
Andrea Selva ff4c5dff3b Merge pull request #261 from AndreasMager/adding-assertj 2017-02-01 13:39:32 +01:00
Andreas Mager 94475d2b04 ProtocolProcessorTest#testCleanRetainedStoreAfterAQoS0AndRetainedTrue:
check added if test is in the correct state
2017-01-30 16:07:16 +01:00
Andreas Mager f25af642b0 SubscriptionsStoreTest: containsExactlyInAnyOrder used for matches 2017-01-30 15:51:50 +01:00
Andreas Mager c5b7fd52c5 SubscriptionsStoreTest: assertj used for assertions 2017-01-30 15:51:50 +01:00
Andreas Mager f460d6a230 SubscriptionsStoreTest: classname used for static access 2017-01-30 15:50:42 +01:00
Andreas Mager 504ac3055e SubscriptionsStoreTest: whitespaces removed 2017-01-30 15:50:42 +01:00
andsel 1c64186a00 Switched from Moquette's MQTT codec to Netty's MQTT codec ones 2017-01-28 15:59:44 +01:00
Andreas Mager 01e7465f0c MemorySessionStore: HashMap replaced by Map Interface 2017-01-26 21:42:21 +01:00
Andreas Mager 6f7011c9f2 MemorySessionStore#m_persistentSubscriptions: Map Layout changed
If one clientid subscribes a lot of topics the old implementation
struggles with the for loops
2017-01-23 18:37:43 +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 46fcdc0894 Allow InterceptHandler to specify the messages they can intercept. This allows us to improve the performance of the broker interceptor, and will make log traces more clear.
- Add methods to return an unique identifier and the supported message types at the InterceptHandler interface.
- Include a default implementation of the new methods in the AbstractInterceptHandler. By default, all the interceptors will be able to handle any message (same as before).
- Comment verifyNoMoreInteractions() call from the BrokerInterceptorTest.testAddAndRemoveInterceptHandler(). The removeInterceptHandler() method of the broker interceptor
  polls the InterceptHandler, so an interaction will always exist after the call to onSubscribe().
2017-01-10 17:06:13 +01:00
andsel ac8a11fefa Removed the reference counter for stored messages 2017-01-09 21:59:09 +01:00
andsel 081631242f Removed old 'map based queues' to use persistent BlockingQueues from MapDB 2017-01-09 21:53:26 +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 a54b122094 Substituted complex test to check lowering of qos level to the same accepted on subscription time 2016-12-13 23:43:02 +01:00
andsel 296af8b4f6 Renamed route2Subscribers() to publish2Subscribers() 2016-12-13 23:43:01 +01:00
andsel 3355e7c334 Moved selection of subscriptions out of route2Subscribers 2016-12-13 23:43:01 +01:00
andsel b6239b3c5c Changed SUBSCRIPTION processing to be based on concurrent FSM 2016-11-27 21:35:20 +01:00
andsel 38746ad0dd Moved existing CONNECT processing to an FSM 2016-11-27 21:35:20 +01:00
andsel 7508275cf7 Changed the way a Client session is active and moved to event and states of Channel for CONNECT and DISCONNET messages 2016-11-05 18:29:08 +01:00
Andrea Selva ccdb50e760 Merge pull request #224 from bcw104/master
broker: notify when client connection lost
2016-11-05 17:08:09 +01:00
bcw 3e89bc5d2c notify when client connection lost;
implement onConnectionLost() method in AbstractInterceptHandler.java;
2016-10-24 11:37:10 +08:00