Separated persistence layer, created submodule for MapDB persistence letting the broker use the in-memory message store

This commit is contained in:
andsel
2017-04-01 16:21:34 +02:00
parent 7ffb8fb43b
commit 5c6889fbd5
39 changed files with 477 additions and 499 deletions
@@ -20,9 +20,9 @@ import io.moquette.BrokerConstants;
import io.moquette.server.config.IConfig;
import io.moquette.server.config.MemoryConfig;
import io.moquette.spi.impl.subscriptions.Topic;
import io.moquette.spi.impl.MemoryMessagesStore;
import io.moquette.spi.impl.MemoryStorageService;
import io.moquette.spi.persistence.MemorySessionStore;
import io.moquette.persistence.MemoryMessagesStore;
import io.moquette.persistence.MemoryStorageService;
import io.moquette.persistence.MemorySessionStore;
import io.moquette.spi.security.IAuthenticator;
import io.moquette.spi.security.IAuthorizator;
import org.junit.After;
@@ -55,7 +55,7 @@ public class IntegrationUtils {
return testProperties;
}
public static void cleanPersistenceFile(IConfig config) {
/*public static void cleanPersistenceFile(IConfig config) {
String fileName = config.getProperty(PERSISTENT_STORE_PROPERTY_NAME);
cleanPersistenceFile(fileName);
}
@@ -68,5 +68,5 @@ public class IntegrationUtils {
new File(fileName + ".t").delete();
}
assertFalse(dbFile.exists());
}
}*/
}
@@ -53,7 +53,6 @@ public class ServerIntegrationDBAuthenticatorTest {
private void stopServer() {
m_server.stopServer();
IntegrationUtils.cleanPersistenceFile(m_config);
}
private Properties addDBAuthenticatorConf(Properties properties) {
@@ -67,9 +66,6 @@ public class ServerIntegrationDBAuthenticatorTest {
@Before
public void setUp() throws Exception {
String dbPath = IntegrationUtils.localMapDBPath();
IntegrationUtils.cleanPersistenceFile(dbPath);
startServer();
m_client = new MqttClient("tcp://localhost:1883", "TestClient", s_dataStore);
@@ -62,9 +62,6 @@ public class ServerIntegrationEmbeddedPublishTest {
@Before
public void setUp() throws Exception {
String dbPath = IntegrationUtils.localMapDBPath();
IntegrationUtils.cleanPersistenceFile(dbPath);
startServer();
m_subscriber = new MqttClient("tcp://localhost:1883", "TestClient", s_dataStore);
@@ -79,7 +76,6 @@ public class ServerIntegrationEmbeddedPublishTest {
}
m_server.stopServer();
IntegrationUtils.cleanPersistenceFile(m_config);
}
private void subscribeToWithQos(String topic, int qos) throws Exception {
@@ -69,7 +69,6 @@ public class ServerIntegrationFuseTest {
}
m_server.stopServer();
IntegrationUtils.cleanPersistenceFile(m_config);
}
@Test
@@ -67,9 +67,6 @@ public class ServerIntegrationHazelcastHandlerInterceptorTest {
@Before
public void setUp() throws Exception {
String dbPath = IntegrationUtils.localMapDBPath();
IntegrationUtils.cleanPersistenceFile(dbPath);
final Properties configProps = addHazelCastConf(
IntegrationUtils.prepareTestClusterProperties(1883),
1883,
@@ -57,9 +57,6 @@ public class ServerIntegrationPahoTest {
@Before
public void setUp() throws Exception {
String dbPath = IntegrationUtils.localMapDBPath();
IntegrationUtils.cleanPersistenceFile(dbPath);
startServer();
m_client = new MqttClient("tcp://localhost:1883", "TestClient", s_dataStore);
@@ -84,7 +81,6 @@ public class ServerIntegrationPahoTest {
private void stopServer() {
m_server.stopServer();
IntegrationUtils.cleanPersistenceFile(m_config);
}
@Test
@@ -176,6 +172,7 @@ public class ServerIntegrationPahoTest {
m_client.disconnect();
}
@Ignore("This test hasn't any meaning using in memory storage service")
@Test
public void testCleanSession_maintainClientSubscriptions_withServerRestart() throws Exception {
LOG.info("*** testCleanSession_maintainClientSubscriptions_withServerRestart ***");
@@ -89,7 +89,6 @@ public class ServerIntegrationQoSValidationTest {
}
m_server.stopServer();
IntegrationUtils.cleanPersistenceFile(m_config);
}
@Test
@@ -65,7 +65,6 @@ public class ServerIntegrationWebSocketTest {
client.stop();
m_server.stopServer();
IntegrationUtils.cleanPersistenceFile(m_config);
}
@Test
@@ -70,7 +70,6 @@ public class ServerLowlevelMessagesIntegrationTests {
Thread.sleep(300); // to let the close event pass before server stop event
m_server.stopServer();
LOG.debug("After asked server to stop");
IntegrationUtils.cleanPersistenceFile(m_config);
}
@Test
@@ -93,22 +92,11 @@ public class ServerLowlevelMessagesIntegrationTests {
}
private static MqttConnectMessage createConnectMessage(String clientID, int keepAlive) {
MqttFixedHeader mqttFixedHeader = new MqttFixedHeader(
MqttMessageType.CONNECT,
false,
MqttQoS.AT_MOST_ONCE,
false,
0);
MqttFixedHeader mqttFixedHeader = new MqttFixedHeader(MqttMessageType.CONNECT, false, MqttQoS.AT_MOST_ONCE,
false, 0);
MqttConnectVariableHeader mqttConnectVariableHeader = new MqttConnectVariableHeader(
MqttVersion.MQTT_3_1.protocolName(),
MqttVersion.MQTT_3_1.protocolLevel(),
false,
false,
false,
1,
false,
true,
keepAlive);
MqttVersion.MQTT_3_1.protocolName(), MqttVersion.MQTT_3_1.protocolLevel(), false, false, false, 1, false,
true, keepAlive);
MqttConnectPayload mqttConnectPayload = new MqttConnectPayload(clientID, null, null, null, null);
return new MqttConnectMessage(mqttFixedHeader, mqttConnectVariableHeader, mqttConnectPayload);
}
@@ -64,7 +64,6 @@ public class ServerRestartIntegrationTest {
@Before
public void setUp() throws Exception {
String dbPath = IntegrationUtils.localMapDBPath();
IntegrationUtils.cleanPersistenceFile(dbPath);
startServer();
m_subscriber = new MqttClient("tcp://localhost:1883", "Subscriber", s_dataStore);
@@ -85,7 +84,6 @@ public class ServerRestartIntegrationTest {
}
m_server.stopServer();
IntegrationUtils.cleanPersistenceFile(m_config);
}
@Test
@@ -97,7 +95,6 @@ public class ServerRestartIntegrationTest {
// shutdown the server
m_server.stopServer();
IntegrationUtils.cleanPersistenceFile(m_config);
// restart the server
m_server.startServer(IntegrationUtils.prepareTestProperties());