From ac5a4daa6f0e29fca1fd5d6fa6759e2b59815652 Mon Sep 17 00:00:00 2001 From: andsel Date: Fri, 23 Sep 2016 10:11:50 +0200 Subject: [PATCH] Changed the way of create MapDB's messages and session stores, it's now more coupled (they are the same stuff at the end) --- .../impl/ProtocolProcessorBootstrapper.java | 2 +- .../spi/persistence/MapDBPersistentStore.java | 20 +++++++++++-------- .../spi/persistence/MapDBSessionsStore.java | 4 ++-- .../persistence/MapDBPersistentStoreTest.java | 2 +- 4 files changed, 16 insertions(+), 12 deletions(-) diff --git a/broker/src/main/java/io/moquette/spi/impl/ProtocolProcessorBootstrapper.java b/broker/src/main/java/io/moquette/spi/impl/ProtocolProcessorBootstrapper.java index 480fa596..b0caa2a3 100644 --- a/broker/src/main/java/io/moquette/spi/impl/ProtocolProcessorBootstrapper.java +++ b/broker/src/main/java/io/moquette/spi/impl/ProtocolProcessorBootstrapper.java @@ -75,7 +75,7 @@ public class ProtocolProcessorBootstrapper { m_mapStorage = new MapDBPersistentStore(props); m_mapStorage.initStore(); IMessagesStore messagesStore = m_mapStorage.messagesStore(); - ISessionsStore sessionsStore = m_mapStorage.sessionsStore(messagesStore); + ISessionsStore sessionsStore = m_mapStorage.sessionsStore(); List observers = new ArrayList<>(embeddedObservers); String interceptorClassName = props.getProperty(BrokerConstants.INTERCEPT_HANDLER_PROPERTY_NAME); diff --git a/broker/src/main/java/io/moquette/spi/persistence/MapDBPersistentStore.java b/broker/src/main/java/io/moquette/spi/persistence/MapDBPersistentStore.java index fe153042..164941e2 100644 --- a/broker/src/main/java/io/moquette/spi/persistence/MapDBPersistentStore.java +++ b/broker/src/main/java/io/moquette/spi/persistence/MapDBPersistentStore.java @@ -59,6 +59,8 @@ public class MapDBPersistentStore { private final int m_autosaveInterval; // in seconds protected final ScheduledExecutorService m_scheduler = Executors.newScheduledThreadPool(1); + private MapDBMessagesStore m_messageStore; + private MapDBSessionsStore m_sessionsStore; public MapDBPersistentStore(IConfig props) { this.m_storePath = props.getProperty(PERSISTENT_STORE_PROPERTY_NAME, ""); @@ -69,16 +71,11 @@ public class MapDBPersistentStore { * Factory method to create message store backed by MapDB * */ public IMessagesStore messagesStore() { - //TODO check m_db is valid and - IMessagesStore msgStore = new MapDBMessagesStore(m_db); - msgStore.initStore(); - return msgStore; + return m_messageStore; } - public ISessionsStore sessionsStore(IMessagesStore msgStore) { - ISessionsStore sessionsStore = new MapDBSessionsStore(m_db, msgStore); - sessionsStore.initStore(); - return sessionsStore; + public ISessionsStore sessionsStore() { + return m_sessionsStore; } public void initStore() { @@ -102,6 +99,13 @@ public class MapDBPersistentStore { m_db.commit(); } }, this.m_autosaveInterval, this.m_autosaveInterval, TimeUnit.SECONDS); + + //TODO check m_db is valid and + m_messageStore = new MapDBMessagesStore(m_db); + m_messageStore.initStore(); + + m_sessionsStore = new MapDBSessionsStore(m_db, m_messageStore); + m_sessionsStore.initStore(); } public void close() { diff --git a/broker/src/main/java/io/moquette/spi/persistence/MapDBSessionsStore.java b/broker/src/main/java/io/moquette/spi/persistence/MapDBSessionsStore.java index 825fac70..ad6f8bd3 100644 --- a/broker/src/main/java/io/moquette/spi/persistence/MapDBSessionsStore.java +++ b/broker/src/main/java/io/moquette/spi/persistence/MapDBSessionsStore.java @@ -49,9 +49,9 @@ class MapDBSessionsStore implements ISessionsStore { private ConcurrentMap> m_secondPhaseStore; private final DB m_db; - private final IMessagesStore m_messagesStore; + private final MapDBMessagesStore m_messagesStore; - MapDBSessionsStore(DB db, IMessagesStore messagesStore) { + MapDBSessionsStore(DB db, MapDBMessagesStore messagesStore) { m_db = db; m_messagesStore = messagesStore; } diff --git a/broker/src/test/java/io/moquette/spi/persistence/MapDBPersistentStoreTest.java b/broker/src/test/java/io/moquette/spi/persistence/MapDBPersistentStoreTest.java index 03534395..e2654a69 100644 --- a/broker/src/test/java/io/moquette/spi/persistence/MapDBPersistentStoreTest.java +++ b/broker/src/test/java/io/moquette/spi/persistence/MapDBPersistentStoreTest.java @@ -55,7 +55,7 @@ public class MapDBPersistentStoreTest { m_storageService = new MapDBPersistentStore(conf); m_storageService.initStore(); m_messagesStore = m_storageService.messagesStore(); - m_sessionsStore = m_storageService.sessionsStore(m_messagesStore); + m_sessionsStore = m_storageService.sessionsStore(); } @After