Switched from Moquette's MQTT codec to Netty's MQTT codec ones

This commit is contained in:
andsel
2017-01-28 15:59:44 +01:00
parent 07093ab0cb
commit 1c64186a00
53 changed files with 1571 additions and 1048 deletions
@@ -15,10 +15,11 @@
*/
package io.moquette.server;
import io.moquette.parser.proto.messages.AbstractMessage.QOSType;
import io.moquette.parser.proto.messages.PublishMessage;
import io.moquette.server.netty.MessageBuilder;
import io.moquette.server.config.IConfig;
import io.moquette.server.config.MemoryConfig;
import io.netty.handler.codec.mqtt.MqttPublishMessage;
import io.netty.handler.codec.mqtt.MqttQoS;
import org.eclipse.paho.client.mqttv3.*;
import org.eclipse.paho.client.mqttv3.persist.MqttDefaultFilePersistence;
import org.junit.After;
@@ -30,7 +31,6 @@ import org.slf4j.LoggerFactory;
import java.io.File;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.util.Properties;
import static org.junit.Assert.*;
@@ -88,13 +88,14 @@ public class ServerIntegrationEmbeddedPublishTest {
m_subscriber.subscribe(topic, qos);
}
private void internalPublishToWithQosAndRetained(String topic, QOSType qos, boolean retained) {
PublishMessage message = new PublishMessage();
message.setTopicName(topic);
message.setRetainFlag(retained);
message.setQos(qos);
message.setPayload(ByteBuffer.wrap("Hello world MQTT!!".getBytes()));
m_server.internalPublish(message);
private void internalPublishToWithQosAndRetained(String topic, MqttQoS qos, boolean retained) {
MqttPublishMessage message = MessageBuilder.publish()
.topicName(topic)
.retained(retained)
.qos(qos)
.payload("Hello world MQTT!!".getBytes())
.build();
m_server.internalPublish(message, "INTRPUBL");
}
private void connectNoCleanSession() throws Exception {
@@ -109,13 +110,13 @@ public class ServerIntegrationEmbeddedPublishTest {
}
private void verifyNoMessageIsReceived() throws Exception {
MqttMessage msg = m_callback.getMessage(false);
MqttMessage msg = m_callback.getMessageImmediate();
assertNull(msg);
}
private void verifyMessageIsReceivedSuccessfully() throws Exception {
//check in 2 seconds
MqttMessage msg = m_callback.getMessage(2);
MqttMessage msg = m_callback.waitMessage(2);
assertNotNull(msg);
assertEquals("Hello world MQTT!!", new String(msg.getPayload()));
}
@@ -125,7 +126,7 @@ public class ServerIntegrationEmbeddedPublishTest {
LOG.info("*** testClientSubscribeAfterNotRetainedQoS0IsSent ***");
//Exercise
internalPublishToWithQosAndRetained("/topic", QOSType.MOST_ONE, false);
internalPublishToWithQosAndRetained("/topic", MqttQoS.AT_MOST_ONCE, false);
subscribeToWithQos("/topic", 0);
//Verify
@@ -139,7 +140,7 @@ public class ServerIntegrationEmbeddedPublishTest {
subscribeToWithQos("/topic", 0);
//Exercise
internalPublishToWithQosAndRetained("/topic", QOSType.MOST_ONE, false);
internalPublishToWithQosAndRetained("/topic", MqttQoS.AT_MOST_ONCE, false);
//Verify
verifyMessageIsReceivedSuccessfully();
@@ -152,7 +153,7 @@ public class ServerIntegrationEmbeddedPublishTest {
subscribeToWithQos("/topic", 0);
//Exercise
internalPublishToWithQosAndRetained("/topic", QOSType.MOST_ONE, true);
internalPublishToWithQosAndRetained("/topic", MqttQoS.AT_MOST_ONCE, true);
//Verify
verifyMessageIsReceivedSuccessfully();
@@ -163,7 +164,7 @@ public class ServerIntegrationEmbeddedPublishTest {
LOG.info("*** testClientSubscribeAfterRetainedQoS0IsSent ***");
//Exercise
internalPublishToWithQosAndRetained("/topic", QOSType.MOST_ONE, true);
internalPublishToWithQosAndRetained("/topic", MqttQoS.AT_MOST_ONCE, true);
//LOG.info("** post internalPublish **");
subscribeToWithQos("/topic", 0);
@@ -178,7 +179,7 @@ public class ServerIntegrationEmbeddedPublishTest {
subscribeToWithQos("/topic", 1);
//Exercise
internalPublishToWithQosAndRetained("/topic", QOSType.LEAST_ONE, false);
internalPublishToWithQosAndRetained("/topic", MqttQoS.AT_LEAST_ONCE, false);
//Verify
verifyMessageIsReceivedSuccessfully();
@@ -189,7 +190,7 @@ public class ServerIntegrationEmbeddedPublishTest {
LOG.info("*** testClientSubscribeAfterNotRetainedQoS1IsSent ***");
//Exercise
internalPublishToWithQosAndRetained("/topic", QOSType.LEAST_ONE, false);
internalPublishToWithQosAndRetained("/topic", MqttQoS.AT_LEAST_ONCE, false);
subscribeToWithQos("/topic", 1);
//Verify
@@ -203,7 +204,7 @@ public class ServerIntegrationEmbeddedPublishTest {
subscribeToWithQos("/topic", 1);
//Exercise
internalPublishToWithQosAndRetained("/topic", QOSType.LEAST_ONE, true);
internalPublishToWithQosAndRetained("/topic", MqttQoS.AT_LEAST_ONCE, true);
//Verify
verifyMessageIsReceivedSuccessfully();
@@ -214,8 +215,8 @@ public class ServerIntegrationEmbeddedPublishTest {
LOG.info("*** testClientSubscribeAfterRetainedQoS0IsSent ***");
//Exercise
internalPublishToWithQosAndRetained("/topic", QOSType.LEAST_ONE, true);
subscribeToWithQos("/topic", 1);
internalPublishToWithQosAndRetained("/topic", MqttQoS.AT_LEAST_ONCE, true);
subscribeToWithQos("/topic", MqttQoS.AT_LEAST_ONCE.value());
LOG.info("** After subscribe **");
//Verify
@@ -230,7 +231,7 @@ public class ServerIntegrationEmbeddedPublishTest {
subscribeToWithQos("/topic", 2);
//Exercise
internalPublishToWithQosAndRetained("/topic", QOSType.EXACTLY_ONCE, false);
internalPublishToWithQosAndRetained("/topic", MqttQoS.EXACTLY_ONCE, false);
//Verify
verifyMessageIsReceivedSuccessfully();
@@ -241,7 +242,7 @@ public class ServerIntegrationEmbeddedPublishTest {
LOG.info("*** testClientSubscribeAfterNotRetainedQoS2IsSent ***");
//Exercise
internalPublishToWithQosAndRetained("/topic", QOSType.EXACTLY_ONCE, false);
internalPublishToWithQosAndRetained("/topic", MqttQoS.EXACTLY_ONCE, false);
subscribeToWithQos("/topic", 2);
//Verify
@@ -255,7 +256,7 @@ public class ServerIntegrationEmbeddedPublishTest {
subscribeToWithQos("/topic", 2);
//Exercise
internalPublishToWithQosAndRetained("/topic", QOSType.EXACTLY_ONCE, true);
internalPublishToWithQosAndRetained("/topic", MqttQoS.EXACTLY_ONCE, true);
//Verify
verifyMessageIsReceivedSuccessfully();
@@ -266,7 +267,7 @@ public class ServerIntegrationEmbeddedPublishTest {
LOG.info("*** testClientSubscribeAfterRetainedQoS2IsSent ***");
//Exercise
internalPublishToWithQosAndRetained("/topic", QOSType.EXACTLY_ONCE, true);
internalPublishToWithQosAndRetained("/topic", MqttQoS.EXACTLY_ONCE, true);
subscribeToWithQos("/topic", 2);
//Verify
@@ -280,11 +281,11 @@ public class ServerIntegrationEmbeddedPublishTest {
subscribeToWithQos("foo", 0);
m_subscriber.disconnect();
internalPublishToWithQosAndRetained("foo", QOSType.MOST_ONE, false);
internalPublishToWithQosAndRetained("foo", MqttQoS.AT_MOST_ONCE, false);
//verifyMessageIsReceivedSuccessfully();
//m_subscriber.receive(2, TimeUnit.MILLISECONDS);
MqttMessage message = m_callback.getMessage(true);
MqttMessage message = m_callback.waitMessage(1);
assertTrue(message == null);
}
@@ -296,7 +297,7 @@ public class ServerIntegrationEmbeddedPublishTest {
assertTrue(m_server.getSubscriptions().size() == 1);
connectNoCleanSession();
assertTrue(m_server.getSubscriptions().size() == 1);
internalPublishToWithQosAndRetained("foo", QOSType.MOST_ONE, false);
internalPublishToWithQosAndRetained("foo", MqttQoS.AT_MOST_ONCE, false);
verifyMessageIsReceivedSuccessfully();
}
}