diff --git a/.classpath b/.classpath
index 302939a..af1430b 100644
--- a/.classpath
+++ b/.classpath
@@ -1,14 +1,26 @@
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.gitignore b/.gitignore
index 5887986..c98ff59 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,3 @@
MeasurementCollectorMqttReceiver-*
+target
+
diff --git a/.project b/.project
index e8a8959..e188ccb 100644
--- a/.project
+++ b/.project
@@ -10,8 +10,14 @@
+
+ org.eclipse.m2e.core.maven2Builder
+
+
+
org.eclipse.jdt.core.javanature
+ org.eclipse.m2e.core.maven2Nature
diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs
index 3a21537..714351a 100644
--- a/.settings/org.eclipse.jdt.core.prefs
+++ b/.settings/org.eclipse.jdt.core.prefs
@@ -1,11 +1,5 @@
eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
-org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
org.eclipse.jdt.core.compiler.compliance=1.8
-org.eclipse.jdt.core.compiler.debug.lineNumber=generate
-org.eclipse.jdt.core.compiler.debug.localVariable=generate
-org.eclipse.jdt.core.compiler.debug.sourceFile=generate
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
org.eclipse.jdt.core.compiler.source=1.8
diff --git a/.settings/org.eclipse.m2e.core.prefs b/.settings/org.eclipse.m2e.core.prefs
new file mode 100644
index 0000000..f897a7f
--- /dev/null
+++ b/.settings/org.eclipse.m2e.core.prefs
@@ -0,0 +1,4 @@
+activeProfiles=
+eclipse.preferences.version=1
+resolveWorkspaceProjects=true
+version=1
diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 0000000..e0f15db
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,3 @@
+{
+ "java.configuration.updateBuildConfiguration": "automatic"
+}
\ No newline at end of file
diff --git a/bin/de/hottis/measurementCollector/ADataObject.class b/bin/de/hottis/measurementCollector/ADataObject.class
deleted file mode 100644
index 6f59984..0000000
Binary files a/bin/de/hottis/measurementCollector/ADataObject.class and /dev/null differ
diff --git a/bin/de/hottis/measurementCollector/ADataParser.class b/bin/de/hottis/measurementCollector/ADataParser.class
deleted file mode 100644
index 6541422..0000000
Binary files a/bin/de/hottis/measurementCollector/ADataParser.class and /dev/null differ
diff --git a/bin/de/hottis/measurementCollector/AMessageParser.class b/bin/de/hottis/measurementCollector/AMessageParser.class
deleted file mode 100644
index 2c5ef96..0000000
Binary files a/bin/de/hottis/measurementCollector/AMessageParser.class and /dev/null differ
diff --git a/bin/de/hottis/measurementCollector/DatabaseEngine.class b/bin/de/hottis/measurementCollector/DatabaseEngine.class
deleted file mode 100644
index aefe6bd..0000000
Binary files a/bin/de/hottis/measurementCollector/DatabaseEngine.class and /dev/null differ
diff --git a/bin/de/hottis/measurementCollector/ElectricEnergyDataObject.class b/bin/de/hottis/measurementCollector/ElectricEnergyDataObject.class
deleted file mode 100644
index c1ef562..0000000
Binary files a/bin/de/hottis/measurementCollector/ElectricEnergyDataObject.class and /dev/null differ
diff --git a/bin/de/hottis/measurementCollector/FinderOnePhasePowerMeter.class b/bin/de/hottis/measurementCollector/FinderOnePhasePowerMeter.class
deleted file mode 100644
index 3da2311..0000000
Binary files a/bin/de/hottis/measurementCollector/FinderOnePhasePowerMeter.class and /dev/null differ
diff --git a/bin/de/hottis/measurementCollector/FinderThreePhasePowerMeter.class b/bin/de/hottis/measurementCollector/FinderThreePhasePowerMeter.class
deleted file mode 100644
index 517990c..0000000
Binary files a/bin/de/hottis/measurementCollector/FinderThreePhasePowerMeter.class and /dev/null differ
diff --git a/bin/de/hottis/measurementCollector/HottisFourChannelThermometer.class b/bin/de/hottis/measurementCollector/HottisFourChannelThermometer.class
deleted file mode 100644
index bf31ea2..0000000
Binary files a/bin/de/hottis/measurementCollector/HottisFourChannelThermometer.class and /dev/null differ
diff --git a/bin/de/hottis/measurementCollector/ITriggerable.class b/bin/de/hottis/measurementCollector/ITriggerable.class
deleted file mode 100644
index 6f6cfa8..0000000
Binary files a/bin/de/hottis/measurementCollector/ITriggerable.class and /dev/null differ
diff --git a/bin/de/hottis/measurementCollector/JmsTopic$Mode.class b/bin/de/hottis/measurementCollector/JmsTopic$Mode.class
deleted file mode 100644
index aa9c13a..0000000
Binary files a/bin/de/hottis/measurementCollector/JmsTopic$Mode.class and /dev/null differ
diff --git a/bin/de/hottis/measurementCollector/JmsTopic.class b/bin/de/hottis/measurementCollector/JmsTopic.class
deleted file mode 100644
index 334e71d..0000000
Binary files a/bin/de/hottis/measurementCollector/JmsTopic.class and /dev/null differ
diff --git a/bin/de/hottis/measurementCollector/MBusParser.class b/bin/de/hottis/measurementCollector/MBusParser.class
deleted file mode 100644
index 47c4044..0000000
Binary files a/bin/de/hottis/measurementCollector/MBusParser.class and /dev/null differ
diff --git a/bin/de/hottis/measurementCollector/MeasurementCollector.class b/bin/de/hottis/measurementCollector/MeasurementCollector.class
deleted file mode 100644
index 2d1310d..0000000
Binary files a/bin/de/hottis/measurementCollector/MeasurementCollector.class and /dev/null differ
diff --git a/bin/de/hottis/measurementCollector/MeasurementCollectorException.class b/bin/de/hottis/measurementCollector/MeasurementCollectorException.class
deleted file mode 100644
index fdce709..0000000
Binary files a/bin/de/hottis/measurementCollector/MeasurementCollectorException.class and /dev/null differ
diff --git a/bin/de/hottis/measurementCollector/MeasurementDatabaseEngine.class b/bin/de/hottis/measurementCollector/MeasurementDatabaseEngine.class
deleted file mode 100644
index 01d6297..0000000
Binary files a/bin/de/hottis/measurementCollector/MeasurementDatabaseEngine.class and /dev/null differ
diff --git a/bin/de/hottis/measurementCollector/MqttReceiver$Callback.class b/bin/de/hottis/measurementCollector/MqttReceiver$Callback.class
deleted file mode 100644
index 39e91f5..0000000
Binary files a/bin/de/hottis/measurementCollector/MqttReceiver$Callback.class and /dev/null differ
diff --git a/bin/de/hottis/measurementCollector/MqttReceiver.class b/bin/de/hottis/measurementCollector/MqttReceiver.class
deleted file mode 100644
index 09ad6f3..0000000
Binary files a/bin/de/hottis/measurementCollector/MqttReceiver.class and /dev/null differ
diff --git a/bin/de/hottis/measurementCollector/MyQueue.class b/bin/de/hottis/measurementCollector/MyQueue.class
deleted file mode 100644
index 7f5fed1..0000000
Binary files a/bin/de/hottis/measurementCollector/MyQueue.class and /dev/null differ
diff --git a/bin/de/hottis/measurementCollector/TemperatureDataObject.class b/bin/de/hottis/measurementCollector/TemperatureDataObject.class
deleted file mode 100644
index f5d9860..0000000
Binary files a/bin/de/hottis/measurementCollector/TemperatureDataObject.class and /dev/null differ
diff --git a/bin/de/hottis/measurementCollector/TriggerTimer.class b/bin/de/hottis/measurementCollector/TriggerTimer.class
deleted file mode 100644
index 68c07bc..0000000
Binary files a/bin/de/hottis/measurementCollector/TriggerTimer.class and /dev/null differ
diff --git a/bin/measurementDataEngine.props b/bin/measurementDataEngine.props
deleted file mode 100644
index 7310c4e..0000000
--- a/bin/measurementDataEngine.props
+++ /dev/null
@@ -1,9 +0,0 @@
-db.period = 3600
-db.url = jdbc:mysql://localhost/smarthome
-db.driver = com.mysql.jdbc.Driver
-db.user = smarthome
-db.password = smarthome123
-
-jms.broker = tcp://localhost:61616
-jms.clientid = mdb
-jms.parseddata.topic = IoT/Measurement
\ No newline at end of file
diff --git a/libraries/activemq-client-5.15.2.jar b/libraries/activemq-client-5.15.2.jar
deleted file mode 100644
index 705e166..0000000
Binary files a/libraries/activemq-client-5.15.2.jar and /dev/null differ
diff --git a/libraries/geronimo-j2ee-management_1.1_spec-1.0.1.jar b/libraries/geronimo-j2ee-management_1.1_spec-1.0.1.jar
deleted file mode 100644
index 0701ae0..0000000
Binary files a/libraries/geronimo-j2ee-management_1.1_spec-1.0.1.jar and /dev/null differ
diff --git a/libraries/geronimo-jms_1.1_spec-1.1.1.jar b/libraries/geronimo-jms_1.1_spec-1.1.1.jar
deleted file mode 100644
index 4f5e646..0000000
Binary files a/libraries/geronimo-jms_1.1_spec-1.1.1.jar and /dev/null differ
diff --git a/libraries/hawtbuf-1.11.jar b/libraries/hawtbuf-1.11.jar
deleted file mode 100644
index c7042a6..0000000
Binary files a/libraries/hawtbuf-1.11.jar and /dev/null differ
diff --git a/libraries/jmbus-3.0.1.jar b/libraries/jmbus-3.0.1.jar
deleted file mode 100644
index 966c683..0000000
Binary files a/libraries/jmbus-3.0.1.jar and /dev/null differ
diff --git a/libraries/log4j-api-2.9.1.jar b/libraries/log4j-api-2.9.1.jar
deleted file mode 100644
index b1d1b76..0000000
Binary files a/libraries/log4j-api-2.9.1.jar and /dev/null differ
diff --git a/libraries/log4j-core-2.9.1.jar b/libraries/log4j-core-2.9.1.jar
deleted file mode 100644
index 88cfaed..0000000
Binary files a/libraries/log4j-core-2.9.1.jar and /dev/null differ
diff --git a/libraries/mysql-connector-java-5.1.44-bin.jar b/libraries/mysql-connector-java-5.1.44-bin.jar
deleted file mode 100644
index 2f2e32d..0000000
Binary files a/libraries/mysql-connector-java-5.1.44-bin.jar and /dev/null differ
diff --git a/libraries/org.eclipse.paho.client.mqttv3-1.2.0.jar b/libraries/org.eclipse.paho.client.mqttv3-1.2.0.jar
deleted file mode 100644
index e26154e..0000000
Binary files a/libraries/org.eclipse.paho.client.mqttv3-1.2.0.jar and /dev/null differ
diff --git a/libraries/quick-json-1.0.2.3.jar b/libraries/quick-json-1.0.2.3.jar
deleted file mode 100644
index 5b1af44..0000000
Binary files a/libraries/quick-json-1.0.2.3.jar and /dev/null differ
diff --git a/libraries/slf4j-api-1.7.25.jar b/libraries/slf4j-api-1.7.25.jar
deleted file mode 100644
index 0143c09..0000000
Binary files a/libraries/slf4j-api-1.7.25.jar and /dev/null differ
diff --git a/bin/measurementCollector.props b/measurementCollector.props
similarity index 100%
rename from bin/measurementCollector.props
rename to measurementCollector.props
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..ee57a98
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,59 @@
+
+ 4.0.0
+ de.hottis.measurementCollector
+ MeasurementCollector
+ jar
+ 1.0-SNAPSHOT
+ MeasurementCollector
+ http://maven.apache.org
+
+ 1.8
+ 1.8
+
+
+
+ junit
+ junit
+ 3.8.1
+ test
+
+
+ de.hottis.common
+ HottisLibJava
+ 1.0-SNAPSHOT
+
+
+ de.hottis.smarthomelib
+ SmarthomeLib
+ 1.0-SNAPSHOT
+
+
+ org.eclipse.paho
+ org.eclipse.paho.client.mqttv3
+ 1.2.0
+
+
+ org.openmuc
+ jmbus
+ 3.0.1
+
+
+
+
+
+ maven-assembly-plugin
+
+
+
+ de.hottis.measurementCollector.MeasurementCollector
+
+
+
+ jar-with-dependencies
+
+
+
+
+
+
diff --git a/src/de/hottis/measurementCollector/ADataObject.java b/src/de/hottis/measurementCollector/ADataObject.java
deleted file mode 100644
index 2feb296..0000000
--- a/src/de/hottis/measurementCollector/ADataObject.java
+++ /dev/null
@@ -1,53 +0,0 @@
-package de.hottis.measurementCollector;
-
-import java.io.Serializable;
-import java.time.LocalDateTime;
-import java.util.Map;
-
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
-public abstract class ADataObject implements Serializable {
- private static final long serialVersionUID = 1L;
-
- final protected Logger logger = LogManager.getRootLogger();
-
- private LocalDateTime timestamp;
- private String name;
- private Map values;
-
- public ADataObject(LocalDateTime timestamp, String name) {
- this.timestamp = timestamp;
- this.name = name;
- }
-
- public void setValues(Map values) {
- this.values = values;
- }
-
- abstract public String getTableName();
-
- public LocalDateTime getTimestamp() {
- return timestamp;
- }
-
- public Map getValues() {
- return values;
- }
-
- public String getName() {
- return name;
- }
-
- public String toString() {
- StringBuffer sb = new StringBuffer();
- sb.append("<");
- sb.append(name);
- sb.append(", ");
- sb.append(timestamp);
- sb.append(", ");
- sb.append(values.toString());
- sb.append(">");
- return sb.toString();
- }
-}
diff --git a/src/de/hottis/measurementCollector/DatabaseEngine.java b/src/de/hottis/measurementCollector/DatabaseEngine.java
deleted file mode 100644
index 1fe6bbe..0000000
--- a/src/de/hottis/measurementCollector/DatabaseEngine.java
+++ /dev/null
@@ -1,185 +0,0 @@
-package de.hottis.measurementCollector;
-
-import java.sql.Connection;
-import java.sql.DriverManager;
-import java.sql.PreparedStatement;
-import java.sql.SQLException;
-import java.sql.Timestamp;
-import java.time.LocalDateTime;
-import java.util.HashMap;
-import java.util.Properties;
-import java.util.Timer;
-
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
-public class DatabaseEngine extends Thread implements ITriggerable {
- static final String DATABASE_ENGINE_PERIOD_PROP = "db.period";
- static final String DATABASE_URL_PROP = "db.url";
- static final String DATABASE_USER_PROP = "db.user";
- static final String DATABASE_PASSWORD_PROP = "db.password";
- static final String DATABASE_DRIVER_PROP = "db.driver";
-
- final protected Logger logger = LogManager.getRootLogger();
-
- private Properties config;
- private MyQueue queue;
- private boolean stop;
- private boolean triggerFlag;
- private Timer timer;
- private int period;
- private String dbUrl;
- private String dbUsername;
- private String dbPassword;
-
- public DatabaseEngine(Properties config, MyQueue queue) {
- super("MeasurementCollector.DatabaseEngine");
- this.config = config;
- this.queue = queue;
- this.stop = false;
- this.triggerFlag = false;
- this.period = Integer.parseInt(this.config.getProperty(DATABASE_ENGINE_PERIOD_PROP));
- this.dbUrl = this.config.getProperty(DATABASE_URL_PROP);
- this.dbUsername = this.config.getProperty(DATABASE_USER_PROP);
- this.dbPassword = this.config.getProperty(DATABASE_PASSWORD_PROP);
- }
-
- public void requestShutdown() {
- logger.info("Shutdown of database engine requested");
- this.stop = true;
- try {
- this.join();
- logger.info("Database engine is down");
- } catch (InterruptedException e) {
- logger.error("Waiting for shutdown of database engine interrupted");
- }
- }
-
- public synchronized void trigger() {
- logger.debug("DatabaseEngine triggered");
- triggerFlag = true;
- notify();
- }
-
- public void init() throws MeasurementCollectorException {
- timer = new Timer("DatabaseEngineTrigger");
- timer.schedule(new TriggerTimer(this), 0, period * 1000);
- try {
- Class.forName(config.getProperty(DATABASE_DRIVER_PROP));
- } catch (ClassNotFoundException e) {
- logger.error("Database driver class not found", e);
- throw new MeasurementCollectorException("Database driver class not found", e);
- }
- }
-
- private String createStatementFromDataObject(ADataObject ado) {
- StringBuffer sb = new StringBuffer();
- sb.append("INSERT INTO " + ado.getTableName());
- sb.append("(name,ts,");
- sb.append(String.join(",", ado.getValues().keySet()));
- sb.append(") ");
- sb.append("VALUES(?,?,");
-
- String[] marks = (String[]) ado.getValues().values().stream()
- .map(c -> "?")
- .toArray(String[]::new);
- sb.append(String.join(",", marks));
-
- sb.append(")");
- return sb.toString();
- }
-
- private void bindValue(PreparedStatement pstmt, int pos, Object o) throws SQLException {
- if (o instanceof Integer) {
- pstmt.setInt(pos, (Integer)o);
- } else if (o instanceof Byte) {
- pstmt.setByte(pos, (Byte)o);
- } else if (o instanceof Double) {
- pstmt.setDouble(pos, (Double)o);
- } else if (o instanceof String) {
- pstmt.setString(pos, (String)o);
- } else if (o instanceof LocalDateTime) {
- pstmt.setTimestamp(pos, Timestamp.valueOf(((LocalDateTime)o)));
- } else {
- throw new SQLException("illegal parameter type: " + o.getClass().getName());
- }
- }
-
-
- @Override
- public synchronized void run() {
- while (! stop) {
- logger.debug("DatabaseEngine is about to wait for (regularly) " + period + "s");
- while (! triggerFlag) {
- try {
- wait();
- } catch (InterruptedException e) {
- }
- }
- triggerFlag = false;
- logger.debug("DatabaseEngine has received trigger");
-
- Connection dbCon = null;
- HashMap preparedStatements = new HashMap();
- try {
- int itemCnt = 0;
-
- while (true) {
- try {
- ADataObject ado = queue.dequeue();
- if (ado == null) {
- logger.warn("DatabaseEngine found no data");
- break;
- }
- dbCon = DriverManager.getConnection(dbUrl, dbUsername, dbPassword);
-
- String key = ado.getClass().getName();
- PreparedStatement pstmt;
- if (! preparedStatements.containsKey(key)) {
- pstmt = dbCon.prepareStatement(createStatementFromDataObject(ado));
- preparedStatements.put(key, pstmt);
- } else {
- pstmt = preparedStatements.get(key);
- }
- bindValue(pstmt, 1, ado.getName());
- bindValue(pstmt, 2, ado.getTimestamp());
- int pos = 3;
- for (Object o : ado.getValues().values()) {
- bindValue(pstmt, pos, o);
- pos++;
- }
- itemCnt++;
- logger.info("DatabaseEngine received (" + itemCnt + ") " + ado);
- logger.info("Statement is " + pstmt.toString());
- pstmt.execute();
- logger.info("Database insert executed");
- pstmt.clearParameters();
- } catch (SQLException e) {
- logger.error("SQLException in inner database engine loop", e);
- }
- }
- } catch (Exception e) {
- logger.error("Exception in outer database engine loop", e);
- } finally {
- for (PreparedStatement p : preparedStatements.values()) {
- try {
- p.close();
- } catch (SQLException e) {
- logger.warn("SQLException when closing prepared statement, nothing will be done");
- }
- }
- preparedStatements.clear();
- if (dbCon != null) {
- try {
- dbCon.close();
- } catch (SQLException e) {
- logger.warn("SQLException when closing connection, nothing will be done");
- } finally {
- dbCon = null;
- }
- }
- }
- }
- logger.info("Database engine is terminating");
- }
-}
diff --git a/src/de/hottis/measurementCollector/ElectricEnergyDataObject.java b/src/de/hottis/measurementCollector/ElectricEnergyDataObject.java
deleted file mode 100644
index cc0439e..0000000
--- a/src/de/hottis/measurementCollector/ElectricEnergyDataObject.java
+++ /dev/null
@@ -1,24 +0,0 @@
-package de.hottis.measurementCollector;
-
-import java.time.LocalDateTime;
-import java.util.HashMap;
-
-public class ElectricEnergyDataObject extends ADataObject {
- private static final long serialVersionUID = 1L;
- static final String ENERGY_KEY = "energy";
- static final String POWER_KEY = "power";
- static final String TABLE_NAME = "ElectricEnergy";
-
- public ElectricEnergyDataObject(LocalDateTime timestamp, String name, double energy, double power) {
- super(timestamp, name);
- HashMap values = new HashMap();
- values.put(ENERGY_KEY, energy);
- values.put(POWER_KEY, power);
- setValues(values);
- }
-
- @Override
- public String getTableName() {
- return TABLE_NAME;
- }
-}
diff --git a/src/de/hottis/measurementCollector/ITriggerable.java b/src/de/hottis/measurementCollector/ITriggerable.java
deleted file mode 100644
index c1e2cef..0000000
--- a/src/de/hottis/measurementCollector/ITriggerable.java
+++ /dev/null
@@ -1,5 +0,0 @@
-package de.hottis.measurementCollector;
-
-public interface ITriggerable {
- public void trigger();
-}
diff --git a/src/de/hottis/measurementCollector/JmsTopic.java b/src/de/hottis/measurementCollector/JmsTopic.java
deleted file mode 100644
index 9abcfc1..0000000
--- a/src/de/hottis/measurementCollector/JmsTopic.java
+++ /dev/null
@@ -1,124 +0,0 @@
-package de.hottis.measurementCollector;
-
-import java.io.Serializable;
-import java.util.Properties;
-
-import javax.jms.Connection;
-import javax.jms.DeliveryMode;
-import javax.jms.JMSException;
-import javax.jms.MessageConsumer;
-import javax.jms.MessageProducer;
-import javax.jms.ObjectMessage;
-import javax.jms.Session;
-import javax.jms.Topic;
-
-import org.apache.activemq.ActiveMQConnectionFactory;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
-public class JmsTopic implements MyQueue {
- static final String JMS_PARSED_DATA_TOPIC = "jms.parseddata.topic";
- static final String JMS_CLIENTID_PROP = "jms.clientid";
- static final String JMS_BROKER ="jms.broker";
-
- static enum Mode { CONSUMER, PRODUCER, CONSUMER_PRODUCER };
-
- final protected Logger logger = LogManager.getRootLogger();
-
- private String clientId;
- private Properties config;
- private Connection connection;
- private Session session;
- private Topic topic;
- private MessageProducer producer;
- private MessageConsumer consumer;
- private String topicTxt;
- private String broker;
- private Mode mode;
-
- public JmsTopic(Properties config, Mode mode) {
- this.config = config;
- clientId = this.config.getProperty(JMS_CLIENTID_PROP);
- topicTxt = this.config.getProperty(JMS_PARSED_DATA_TOPIC);
- broker = this.config.getProperty(JMS_BROKER);
- this.mode = mode;
- }
-
-
- public void init() throws MeasurementCollectorException {
- try {
- ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory(broker);
- connectionFactory.setTrustAllPackages(true);
- logger.debug("connectionFactory: " + connectionFactory);
- connection = connectionFactory.createConnection();
- connection.setClientID(clientId);
- connection.start();
- logger.debug("connection: " + connection);
- session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
- logger.debug("session: " + session);
- topic = session.createTopic(topicTxt);
- logger.debug("topic: " + topic);
-
- if ((mode == Mode.PRODUCER) || (mode == Mode.CONSUMER_PRODUCER)) {
- producer = session.createProducer(topic);
- producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT);
- logger.debug("producer: " + producer);
- } else {
- producer = null;
- }
-
- if ((mode == Mode.CONSUMER) || (mode == Mode.CONSUMER_PRODUCER)) {
- consumer = session.createDurableSubscriber(topic, "DatabaseEngine");
- logger.debug("consumer: " + consumer);
- } else {
- consumer = null;
- }
-
- } catch (JMSException e) {
- logger.error("JMSException in AJmsQueue.init", e);
- throw new MeasurementCollectorException("JMSException in AJmsTopic.init", e);
- }
- }
-
- public T dequeue() throws MeasurementCollectorException {
- if (consumer == null) {
- throw new MeasurementCollectorException("This is no consumer");
- }
- try {
- ObjectMessage message = (ObjectMessage) consumer.receiveNoWait();
- T item;
- if (message != null) {
- @SuppressWarnings("unchecked")
- T t = (T) message.getObject();
- item = t;
- logger.debug("message dequeued");
- } else {
- item = null;
- }
- return item;
- } catch (JMSException e) {
- logger.error("JMSException in JmsTopic.dequeue", e);
- logger.error("Calling init");
- init();
- throw new MeasurementCollectorException("JMSException in JmsTopic.dequeue", e);
- }
- }
-
- public void enqueue(T item) throws MeasurementCollectorException {
- if (producer == null) {
- throw new MeasurementCollectorException("This is no producer");
- }
- try {
- ObjectMessage message = session.createObjectMessage();
- message.setObject(item);
- producer.send(message);
- logger.debug("message enqueued");
- } catch (JMSException e) {
- logger.error("JMSException in JmsTopic.enqueue", e);
- logger.error("Calling init");
- init();
- throw new MeasurementCollectorException("JMSException in JmsTopic.enqueue", e);
- }
- }
-
-}
diff --git a/src/de/hottis/measurementCollector/MeasurementCollectorException.java b/src/de/hottis/measurementCollector/MeasurementCollectorException.java
deleted file mode 100644
index a0db89c..0000000
--- a/src/de/hottis/measurementCollector/MeasurementCollectorException.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package de.hottis.measurementCollector;
-
-@SuppressWarnings("serial")
-public class MeasurementCollectorException extends Exception {
- public MeasurementCollectorException(String msg, Throwable cause) {
- super(msg, cause);
- }
-
- public MeasurementCollectorException(String msg) {
- super(msg);
- }
-
-}
diff --git a/src/de/hottis/measurementCollector/MeasurementDatabaseEngine.java b/src/de/hottis/measurementCollector/MeasurementDatabaseEngine.java
deleted file mode 100644
index 9797dd9..0000000
--- a/src/de/hottis/measurementCollector/MeasurementDatabaseEngine.java
+++ /dev/null
@@ -1,30 +0,0 @@
-package de.hottis.measurementCollector;
-
-import java.util.Properties;
-
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
-
-
-public class MeasurementDatabaseEngine {
- static final String PROPS_FILENAME = "measurementDataEngine.props";
- static final Logger logger = LogManager.getRootLogger();
-
-
- public static void main(String[] args) throws Exception {
- logger.info("MeasurementDatabaseEngine starting");
-
- final Properties config = new Properties();
- config.load(MeasurementDatabaseEngine.class.getClassLoader().getResourceAsStream(PROPS_FILENAME));
- logger.debug("Configuration loaded");
-
- JmsTopic queue = new JmsTopic(config, JmsTopic.Mode.CONSUMER);
- queue.init();
-
- DatabaseEngine databaseEngine = new DatabaseEngine(config, queue);
- databaseEngine.init();
- databaseEngine.start();
- logger.debug("DatabaseEngine started");
- }
-
-}
diff --git a/src/de/hottis/measurementCollector/MyQueue.java b/src/de/hottis/measurementCollector/MyQueue.java
deleted file mode 100644
index d73dfab..0000000
--- a/src/de/hottis/measurementCollector/MyQueue.java
+++ /dev/null
@@ -1,8 +0,0 @@
-package de.hottis.measurementCollector;
-
-import java.io.Serializable;
-
-public interface MyQueue {
- public T dequeue() throws MeasurementCollectorException;
- public void enqueue(T item) throws MeasurementCollectorException;
-}
diff --git a/src/de/hottis/measurementCollector/TemperatureDataObject.java b/src/de/hottis/measurementCollector/TemperatureDataObject.java
deleted file mode 100644
index 90794a0..0000000
--- a/src/de/hottis/measurementCollector/TemperatureDataObject.java
+++ /dev/null
@@ -1,21 +0,0 @@
-package de.hottis.measurementCollector;
-
-import java.time.LocalDateTime;
-import java.util.HashMap;
-
-public class TemperatureDataObject extends ADataObject {
- private static final long serialVersionUID = 1L;
- static final String TEMPERATURE_KEY = "temperature";
- static final String TABLE_NAME = "Temperature";
-
- public TemperatureDataObject(LocalDateTime timestamp, String name, double temperature) {
- super(timestamp, name);
- HashMap values = new HashMap();
- values.put(TEMPERATURE_KEY, temperature);
- setValues(values);
- }
-
- public String getTableName() {
- return TABLE_NAME;
- }
-}
diff --git a/src/de/hottis/measurementCollector/TriggerTimer.java b/src/de/hottis/measurementCollector/TriggerTimer.java
deleted file mode 100644
index 71aa361..0000000
--- a/src/de/hottis/measurementCollector/TriggerTimer.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package de.hottis.measurementCollector;
-
-import java.util.TimerTask;
-
-public class TriggerTimer extends TimerTask {
- private ITriggerable triggerable;
-
- public TriggerTimer(ITriggerable triggerable) {
- this.triggerable = triggerable;
- }
-
- public void run() {
- triggerable.trigger();
- }
-}
diff --git a/src/log4j2.xml b/src/log4j2.xml
deleted file mode 100644
index 0e87b69..0000000
--- a/src/log4j2.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/src/de/hottis/measurementCollector/ADataParser.java b/src/main/java/de/hottis/measurementCollector/ADataParser.java
similarity index 100%
rename from src/de/hottis/measurementCollector/ADataParser.java
rename to src/main/java/de/hottis/measurementCollector/ADataParser.java
diff --git a/src/de/hottis/measurementCollector/AMessageParser.java b/src/main/java/de/hottis/measurementCollector/AMessageParser.java
similarity index 100%
rename from src/de/hottis/measurementCollector/AMessageParser.java
rename to src/main/java/de/hottis/measurementCollector/AMessageParser.java
diff --git a/src/de/hottis/measurementCollector/FinderOnePhasePowerMeter.java b/src/main/java/de/hottis/measurementCollector/FinderOnePhasePowerMeter.java
similarity index 100%
rename from src/de/hottis/measurementCollector/FinderOnePhasePowerMeter.java
rename to src/main/java/de/hottis/measurementCollector/FinderOnePhasePowerMeter.java
diff --git a/src/de/hottis/measurementCollector/FinderThreePhasePowerMeter.java b/src/main/java/de/hottis/measurementCollector/FinderThreePhasePowerMeter.java
similarity index 100%
rename from src/de/hottis/measurementCollector/FinderThreePhasePowerMeter.java
rename to src/main/java/de/hottis/measurementCollector/FinderThreePhasePowerMeter.java
diff --git a/src/de/hottis/measurementCollector/HottisFourChannelThermometer.java b/src/main/java/de/hottis/measurementCollector/HottisFourChannelThermometer.java
similarity index 100%
rename from src/de/hottis/measurementCollector/HottisFourChannelThermometer.java
rename to src/main/java/de/hottis/measurementCollector/HottisFourChannelThermometer.java
diff --git a/src/de/hottis/measurementCollector/MBusParser.java b/src/main/java/de/hottis/measurementCollector/MBusParser.java
similarity index 100%
rename from src/de/hottis/measurementCollector/MBusParser.java
rename to src/main/java/de/hottis/measurementCollector/MBusParser.java
diff --git a/src/de/hottis/measurementCollector/MeasurementCollector.java b/src/main/java/de/hottis/measurementCollector/MeasurementCollector.java
similarity index 100%
rename from src/de/hottis/measurementCollector/MeasurementCollector.java
rename to src/main/java/de/hottis/measurementCollector/MeasurementCollector.java
diff --git a/src/de/hottis/measurementCollector/MqttReceiver.java b/src/main/java/de/hottis/measurementCollector/MqttReceiver.java
similarity index 100%
rename from src/de/hottis/measurementCollector/MqttReceiver.java
rename to src/main/java/de/hottis/measurementCollector/MqttReceiver.java
diff --git a/bin/log4j2.xml b/src/main/resources/log4j2.xml
similarity index 100%
rename from bin/log4j2.xml
rename to src/main/resources/log4j2.xml
diff --git a/src/measurementCollector.props b/src/measurementCollector.props
deleted file mode 100644
index f4350d7..0000000
--- a/src/measurementCollector.props
+++ /dev/null
@@ -1,17 +0,0 @@
-mqtt.broker = tcp://172.16.2.15:1883
-;mqtt.broker = tcp://eupenstrasse20.dynamic.hottis.de:2883
-;mqtt.username = tron
-;mqtt.password = geheim123
-
-mbus.dataparser.1 = light,Light,de.hottis.measurementCollector.FinderOnePhasePowerMeter
-mbus.dataparser.2 = computer,Computer,de.hottis.measurementCollector.FinderOnePhasePowerMeter
-mbus.dataparser.3 = laundry,Laundry,de.hottis.measurementCollector.FinderOnePhasePowerMeter
-mbus.dataparser.4 = dryer,Dryer,de.hottis.measurementCollector.FinderOnePhasePowerMeter
-mbus.dataparser.5 = dishwasher,Dishwasher,de.hottis.measurementCollector.FinderOnePhasePowerMeter
-mbus.dataparser.6 = freezer,Freezer,de.hottis.measurementCollector.FinderOnePhasePowerMeter
-mbus.dataparser.7 = electricity,Total,de.hottis.measurementCollector.FinderThreePhasePowerMeter
-mbus.dataparser.8 = thermom.,null,de.hottis.measurementCollector.HottisFourChannelThermometer
-
-jms.broker = tcp://localhost:61616
-jms.clientid = mcol
-jms.parseddata.topic = IoT/Measurement
\ No newline at end of file
diff --git a/src/measurementDataEngine.props b/src/measurementDataEngine.props
deleted file mode 100644
index 7310c4e..0000000
--- a/src/measurementDataEngine.props
+++ /dev/null
@@ -1,9 +0,0 @@
-db.period = 3600
-db.url = jdbc:mysql://localhost/smarthome
-db.driver = com.mysql.jdbc.Driver
-db.user = smarthome
-db.password = smarthome123
-
-jms.broker = tcp://localhost:61616
-jms.clientid = mdb
-jms.parseddata.topic = IoT/Measurement
\ No newline at end of file
diff --git a/src/test/java/de/hottis/measurementCollector/AppTest.java b/src/test/java/de/hottis/measurementCollector/AppTest.java
new file mode 100644
index 0000000..644ba77
--- /dev/null
+++ b/src/test/java/de/hottis/measurementCollector/AppTest.java
@@ -0,0 +1,38 @@
+package de.hottis.measurementCollector;
+
+import junit.framework.Test;
+import junit.framework.TestCase;
+import junit.framework.TestSuite;
+
+/**
+ * Unit test for simple App.
+ */
+public class AppTest
+ extends TestCase
+{
+ /**
+ * Create the test case
+ *
+ * @param testName name of the test case
+ */
+ public AppTest( String testName )
+ {
+ super( testName );
+ }
+
+ /**
+ * @return the suite of tests being tested
+ */
+ public static Test suite()
+ {
+ return new TestSuite( AppTest.class );
+ }
+
+ /**
+ * Rigourous Test :-)
+ */
+ public void testApp()
+ {
+ assertTrue( true );
+ }
+}
diff --git a/start.sh b/start.sh
deleted file mode 100755
index 118d4e0..0000000
--- a/start.sh
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/bin/bash
-
-PWD=`pwd`
-CLASSPATH=$CLASSPATH:$PWD/bin
-for I in `find libraries -type f`; do
- CLASSPATH=$CLASSPATH:$PWD/$I;
-done
-export CLASSPATH
-export JAVA_HOME=/opt/jdk1.8.0_131
-
-$JAVA_HOME/bin/java de.hottis.measurementCollector.MeasurementCollector
-
diff --git a/startDatabaseEngine.sh b/startDatabaseEngine.sh
deleted file mode 100755
index c38da59..0000000
--- a/startDatabaseEngine.sh
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/bin/bash
-
-PWD=`pwd`
-CLASSPATH=$CLASSPATH:$PWD/bin
-for I in `find libraries -type f`; do
- CLASSPATH=$CLASSPATH:$PWD/$I;
-done
-export CLASSPATH
-export JAVA_HOME=/opt/jdk1.8.0_131
-
-$JAVA_HOME/bin/java de.hottis.measurementCollector.MeasurementDatabaseEngine
-