diff --git a/broker/src/main/java/org/dna/mqtt/moquette/server/Server.java b/broker/src/main/java/org/dna/mqtt/moquette/server/Server.java index 81b531d1..6625ed96 100644 --- a/broker/src/main/java/org/dna/mqtt/moquette/server/Server.java +++ b/broker/src/main/java/org/dna/mqtt/moquette/server/Server.java @@ -53,7 +53,7 @@ public class Server { } public void startServer(String nioFrameworkType) throws IOException { - LOG.info("Starting server with " + nioFrameworkType + " connectors"); + System.out.println("Starting server with " + nioFrameworkType + " connectors"); messaging = SimpleMessaging.getInstance(); messaging.init(); @@ -66,10 +66,10 @@ public class Server { } public void stopServer() { - LOG.info("Server stopping..."); + System.out.println("Server stopping..."); messaging.stop(); m_acceptor.close(); - LOG.info("Server stopped"); + System.out.println("Server stopped"); } diff --git a/broker/src/main/resources/log4j.properties b/broker/src/main/resources/log4j.properties index bb496264..e94b4488 100644 --- a/broker/src/main/resources/log4j.properties +++ b/broker/src/main/resources/log4j.properties @@ -9,9 +9,9 @@ log4j.rootLogger=ERROR, A1 #log4j.logger.org.dna.mqtt.moquette.proto.MQTTLoggingFilter=DEBUG #log4j.logger.org.dna.mqtt.moquette.proto.PublishDecoder=DEBUG -log4j.logger.org.dna.mqtt=INFO +log4j.logger.org.dna.mqtt=WARN log4j.logger.org.dna.mqtt.moquette.server.ServerIntegrationFuseTest=DEBUG -log4j.logger.org.dna.mqtt.moquette.messaging.spi.impl.ProtocolProcessor=DEBUG +log4j.logger.org.dna.mqtt.moquette.messaging.spi.impl.ProtocolProcessor=WARN # A1 is set to be a ConsoleAppender. log4j.appender.A1=org.apache.log4j.ConsoleAppender diff --git a/parser/src/main/resources/log4j.properties b/parser/src/test/resources/log4j.properties similarity index 97% rename from parser/src/main/resources/log4j.properties rename to parser/src/test/resources/log4j.properties index 2bf76ccf..b1dfbfbf 100644 --- a/parser/src/main/resources/log4j.properties +++ b/parser/src/test/resources/log4j.properties @@ -1,19 +1,19 @@ -# Set root logger level to DEBUG and its only appender to A1. -#log4j.rootLogger=ERROR, A1 -log4j.rootLogger=INFO, A1 -#log4j.rootLogger=WARN, A1 -#log4j.logger.org.dna.mqtt.moquette.client=WARN -#log4j.logger.org.mina=WARN -#log4j.logger.org.dna.mqtt.moquette.server=DEBUG -#log4j.logger.org.dna.mqtt.moquette.messaging=DEBUG -#log4j.logger.org.dna.mqtt.moquette.proto.MQTTLoggingFilter=DEBUG -#log4j.logger.org.dna.mqtt.moquette.proto.PublishDecoder=DEBUG - -log4j.logger.org.dna.mqtt.bechnmark=INFO - -# A1 is set to be a ConsoleAppender. -log4j.appender.A1=org.apache.log4j.ConsoleAppender - -# A1 uses PatternLayout. -log4j.appender.A1.layout=org.apache.log4j.PatternLayout +# Set root logger level to DEBUG and its only appender to A1. +#log4j.rootLogger=ERROR, A1 +log4j.rootLogger=INFO, A1 +#log4j.rootLogger=WARN, A1 +#log4j.logger.org.dna.mqtt.moquette.client=WARN +#log4j.logger.org.mina=WARN +#log4j.logger.org.dna.mqtt.moquette.server=DEBUG +#log4j.logger.org.dna.mqtt.moquette.messaging=DEBUG +#log4j.logger.org.dna.mqtt.moquette.proto.MQTTLoggingFilter=DEBUG +#log4j.logger.org.dna.mqtt.moquette.proto.PublishDecoder=DEBUG + +log4j.logger.org.dna.mqtt.bechnmark=INFO + +# A1 is set to be a ConsoleAppender. +log4j.appender.A1=org.apache.log4j.ConsoleAppender + +# A1 uses PatternLayout. +log4j.appender.A1.layout=org.apache.log4j.PatternLayout log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c{1} %x - %m%n \ No newline at end of file diff --git a/tools_scripts/bunch_publish_issue12.groovy b/tools_scripts/bunch_publish_issue12.groovy new file mode 100644 index 00000000..4770431b --- /dev/null +++ b/tools_scripts/bunch_publish_issue12.groovy @@ -0,0 +1,24 @@ +import org.eclipse.paho.client.mqttv3.MqttClient +import org.eclipse.paho.client.mqttv3.MqttMessage +import org.eclipse.paho.client.mqttv3.MqttException +import org.eclipse.paho.client.mqttv3.MqttDefaultFilePersistence + +String tmpDir = System.getProperty("java.io.tmpdir") +MqttDefaultFilePersistence dataStore = new MqttDefaultFilePersistence(tmpDir) + +MqttClient client = new MqttClient("tcp://localhost:1883", "SampleClient", dataStore) +client.connect() +println "connected" +(1..10).each { + //MqttMessage message = new MqttMessage("Hello world!! $it".toString().bytes) + String s = "Hello World!! $it" + MqttMessage message = new MqttMessage(s.bytes) + message.qos = 2 + message.retained = true + print "publishing.." + client.getTopic("log").publish(message) + println "published" +} + +client.disconnect() +println "disconnected" \ No newline at end of file diff --git a/tools_scripts/list-broker-topics.rb b/tools_scripts/list-broker-topics.rb new file mode 100644 index 00000000..6aa92ed2 --- /dev/null +++ b/tools_scripts/list-broker-topics.rb @@ -0,0 +1,10 @@ +#!/usr/bin/env ruby + +require 'rubygems' +require 'mqtt' + +MQTT::Client.connect('localhost',1883) do |client| + client.get('#') do |topic,message| + puts "#{topic}: #{message}" + end +end diff --git a/tools_scripts/paho_test_issue8.groovy b/tools_scripts/paho_test_issue8.groovy new file mode 100644 index 00000000..25dcd740 --- /dev/null +++ b/tools_scripts/paho_test_issue8.groovy @@ -0,0 +1,20 @@ +@GrabResolver(name='Paho', root='https://repo.eclipse.org/content/repositories/paho-releases/") +@Grab(group='org.eclipse.paho', module='mqtt-client', version='0.4.0') + +import org.eclipse.paho.client.mqttv3.MqttClient +import org.eclipse.paho.client.mqttv3.MqttMessage +import org.eclipse.paho.client.mqttv3.MqttException +import org.eclipse.paho.client.mqttv3.MqttDefaultFilePersistence + +String tmpDir = System.getProperty("java.io.tmpdir") +MqttDefaultFilePersistence dataStore = new MqttDefaultFilePersistence(tmpDir) + +MqttClient client = new MqttClient("tcp://localhost:1883", "SampleClient", dataStore) +client.connect() +MqttMessage message = new MqttMessage('Hello world!!'.bytes) +message.setQos(2) +print "publishing.." +client.getTopic("log").publish(message) +println "published" +client.disconnect() +println "disconnected" \ No newline at end of file diff --git a/tools_scripts/publisher_client.groovy b/tools_scripts/publisher_client.groovy new file mode 100644 index 00000000..ea0023e4 --- /dev/null +++ b/tools_scripts/publisher_client.groovy @@ -0,0 +1,26 @@ +@GrabResolver(name='Paho', root='https://repo.eclipse.org/content/repositories/paho-releases/') +@Grab(group='org.eclipse.paho', module='mqtt-client', version='0.4.0') + +import org.eclipse.paho.client.mqttv3.MqttClient +import org.eclipse.paho.client.mqttv3.MqttMessage +import org.eclipse.paho.client.mqttv3.MqttException +import org.eclipse.paho.client.mqttv3.persist.MqttDefaultFilePersistence + +String tmpDir = System.getProperty("java.io.tmpdir") +MqttDefaultFilePersistence dataStore = new MqttDefaultFilePersistence(tmpDir) + +MqttClient client = new MqttClient("tcp://localhost:1883", "PublisherClient", dataStore) +client.connect() +MqttMessage message = new MqttMessage('Hello world!!'.bytes) +message.setQos(0) +print "publishing.." +long startTime = System.currentTimeMillis() +(1..1000000).each { + client.publish('topic', 'Hello world!!'.bytes, 0, false) +} +client.publish('/exit', 'Exit'.bytes, 0, false) +long stopTime = System.currentTimeMillis() +long spentTime = stopTime -startTime +println "published in ${spentTime} ms" +client.disconnect() +println "disconnected" \ No newline at end of file diff --git a/tools_scripts/subscriber_client.groovy b/tools_scripts/subscriber_client.groovy new file mode 100644 index 00000000..44b3b18e --- /dev/null +++ b/tools_scripts/subscriber_client.groovy @@ -0,0 +1,66 @@ +@GrabResolver(name='Paho', root='https://repo.eclipse.org/content/repositories/paho-releases/') +@Grab(group='org.eclipse.paho', module='mqtt-client', version='0.4.0') + +import org.eclipse.paho.client.mqttv3.MqttClient +import org.eclipse.paho.client.mqttv3.MqttMessage +import org.eclipse.paho.client.mqttv3.MqttException +import org.eclipse.paho.client.mqttv3.MqttCallback +import org.eclipse.paho.client.mqttv3.IMqttDeliveryToken +import org.eclipse.paho.client.mqttv3.persist.MqttDefaultFilePersistence +import java.util.concurrent.CountDownLatch +import java.util.concurrent.TimeUnit + + + +class SubscriberCallback implements MqttCallback { + + int m_numReceived = 0 + long m_startTime + boolean firstMessageReceived = false + + private CountDownLatch m_latch = new CountDownLatch(1) + + void waitFinish() { + m_latch.await() + } + + public void connectionLost(Throwable cause) { + m_latch.countDown() + } + + public void messageArrived(String topic, MqttMessage message) throws Exception { + //println "Received message ${new String(message.payload)} on topic [${topic}]" + if (!firstMessageReceived) { + m_startTime = System.currentTimeMillis() + firstMessageReceived = true + } + if (topic == "/exit") { + long stopTime = System.currentTimeMillis() + long spentTime = stopTime - m_startTime + println "/exit received" + println "subscriber disconnected, received ${m_numReceived} messages in ${spentTime} ms" + client.disconnect() + m_latch.countDown() + } else { + m_numReceived++ + } + } + + public void deliveryComplete(IMqttDeliveryToken token) { + //To change body of implemented methods use File | Settings | File Templates. + } +} + +String tmpDir = System.getProperty("java.io.tmpdir") +MqttDefaultFilePersistence dataStore = new MqttDefaultFilePersistence(tmpDir) + +MqttClient client = new MqttClient("tcp://localhost:1883", "SubscriberClient", dataStore) +def callback = new SubscriberCallback() +client.callback = callback +client.connect() +client.subscribe("topic", 0) +println "subscribed to topic" +client.subscribe("/exit", 0) +println "subscribed to /exit" + +callback.waitFinish() \ No newline at end of file