broker/Server: ScheduledExecutorService moved from MapDBPersistentStore

broker/ProtocolProcessorBootstrapper: tabs removed
broker/MapDBPersistentStore: bonding to Server removed
This commit is contained in:
Andreas Mager
2017-03-22 23:16:14 +01:00
committed by Andreas Mager
parent 6ca8108f1e
commit dd106434ce
4 changed files with 39 additions and 16 deletions
@@ -98,22 +98,24 @@ public class ProtocolProcessorBootstrapper {
messagesStore = store.messagesStore();
m_sessionsStore = store.sessionsStore();
storeShutdown = new Runnable() {
@Override
public void run() {
store.close();
}
};
@Override
public void run() {
store.close();
}
};
} else {
final MapDBPersistentStore m_mapStorage = new MapDBPersistentStore(props);
final MapDBPersistentStore m_mapStorage = new MapDBPersistentStore(props, server.getScheduler());
m_mapStorage.initStore();
messagesStore = m_mapStorage.messagesStore();
m_sessionsStore = m_mapStorage.sessionsStore();
storeShutdown = new Runnable() {
@Override
public void run() {
m_mapStorage.close();
}
};
@Override
public void run() {
m_mapStorage.close();
}
};
}
LOG.info("Configuring message interceptors...");
@@ -282,7 +284,7 @@ public class ProtocolProcessorBootstrapper {
public ISessionsStore getSessionsStore() {
return m_sessionsStore;
}
public List<Subscription> getSubscriptions() {
return m_sessionsStore.getSubscriptions();
}
@@ -27,7 +27,6 @@ import org.slf4j.LoggerFactory;
import java.io.File;
import java.io.IOException;
import java.io.Serializable;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
import static io.moquette.BrokerConstants.AUTOSAVE_INTERVAL_PROPERTY_NAME;
@@ -58,13 +57,14 @@ public class MapDBPersistentStore implements IStore {
private final String m_storePath;
private final int m_autosaveInterval; // in seconds
protected final ScheduledExecutorService m_scheduler = Executors.newScheduledThreadPool(1);
protected final ScheduledExecutorService m_scheduler;
private IMessagesStore m_messageStore;
private ISessionsStore m_sessionsStore;
public MapDBPersistentStore(IConfig props) {
public MapDBPersistentStore(IConfig props, ScheduledExecutorService scheduler) {
this.m_storePath = props.getProperty(PERSISTENT_STORE_PROPERTY_NAME, "");
this.m_autosaveInterval = Integer.parseInt(props.getProperty(AUTOSAVE_INTERVAL_PROPERTY_NAME, "30"));
this.m_scheduler = scheduler;
}
/**