diff --git a/.idea/.name b/.idea/.name
deleted file mode 100644
index 1a452025..00000000
--- a/.idea/.name
+++ /dev/null
@@ -1 +0,0 @@
-radar-backend
\ No newline at end of file
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
index 6e0a691c..69eaff7a 100644
--- a/.idea/compiler.xml
+++ b/.idea/compiler.xml
@@ -1,31 +1,10 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
\ No newline at end of file
diff --git a/build.gradle b/build.gradle
index 6c289c14..211603d4 100644
--- a/build.gradle
+++ b/build.gradle
@@ -17,7 +17,7 @@ plugins {
//---------------------------------------------------------------------------//
group = 'org.radarcns'
-version = '0.1-alpha.3-SNAPSHOT'
+version = '0.1'
ext.description = 'Kafka backend for processing device data.'
mainClassName = 'org.radarcns.RadarBackend'
diff --git a/src/main/java/org/radarcns/monitor/AbstractKafkaMonitor.java b/src/main/java/org/radarcns/monitor/AbstractKafkaMonitor.java
index 46380bec..798263e6 100644
--- a/src/main/java/org/radarcns/monitor/AbstractKafkaMonitor.java
+++ b/src/main/java/org/radarcns/monitor/AbstractKafkaMonitor.java
@@ -88,10 +88,11 @@ public AbstractKafkaMonitor(RadarPropertyHandler radar, Collection topic
properties = new Properties();
String deserializer = KafkaAvroDeserializer.class.getName();
+ String monitorClientId = getClass().getName() + "-" + clientId;
properties.setProperty(KEY_DESERIALIZER_CLASS_CONFIG, deserializer);
properties.setProperty(VALUE_DESERIALIZER_CLASS_CONFIG, deserializer);
properties.setProperty(GROUP_ID_CONFIG, groupId);
- properties.setProperty(CLIENT_ID_CONFIG, clientId);
+ properties.setProperty(CLIENT_ID_CONFIG, monitorClientId);
properties.setProperty(ENABLE_AUTO_COMMIT_CONFIG, "true");
properties.setProperty(AUTO_COMMIT_INTERVAL_MS_CONFIG, "1001");
properties.setProperty(SESSION_TIMEOUT_MS_CONFIG, "15101");
@@ -105,7 +106,7 @@ public AbstractKafkaMonitor(RadarPropertyHandler radar, Collection topic
this.topics = topics;
this.pollTimeout = new AtomicLong(Long.MAX_VALUE);
this.done = false;
- this.clientId = clientId;
+ this.clientId = monitorClientId;
this.groupId = groupId;
PersistentStateStore localStateStore;
@@ -121,7 +122,7 @@ public AbstractKafkaMonitor(RadarPropertyHandler radar, Collection topic
S localState = stateDefault;
if (stateStore != null && stateDefault != null) {
try {
- localState = stateStore.retrieveState(groupId, clientId, stateDefault);
+ localState = stateStore.retrieveState(groupId, monitorClientId, stateDefault);
logger.info("Using existing {} from persistence store.",
stateDefault.getClass().getName());
} catch (IOException ex) {
diff --git a/src/main/java/org/radarcns/monitor/BatteryLevelMonitor.java b/src/main/java/org/radarcns/monitor/BatteryLevelMonitor.java
index 3d140bc2..f8474dd4 100644
--- a/src/main/java/org/radarcns/monitor/BatteryLevelMonitor.java
+++ b/src/main/java/org/radarcns/monitor/BatteryLevelMonitor.java
@@ -97,7 +97,10 @@ protected void evaluateRecord(ConsumerRecord recor
key.getSourceId(), key.getUserId(), record.value());
}
} else if (previousLevel <= Status.LOW.getLevel()) {
- updateStatus(key, Status.NORMAL);
+ // Remove the email alert for battery monitor for normal level because
+ // it is not crucial and to prevent spamming a user's email account.
+ // Uncomment the line below if needed.
+ // updateStatus(key, Status.NORMAL);
logger.info("Battery of sensor {} of user {} is has returned to normal: {}",
key.getSourceId(), key.getUserId(), record.value());
}
diff --git a/src/test/java/org/radarcns/monitor/BatteryLevelMonitorTest.java b/src/test/java/org/radarcns/monitor/BatteryLevelMonitorTest.java
index 4bbc8854..6f2cc21c 100644
--- a/src/test/java/org/radarcns/monitor/BatteryLevelMonitorTest.java
+++ b/src/test/java/org/radarcns/monitor/BatteryLevelMonitorTest.java
@@ -89,14 +89,14 @@ public void evaluateRecord() throws Exception {
sendMessage(monitor, 1.0f, false);
sendMessage(monitor, 0.1f, true);
sendMessage(monitor, 0.1f, false);
- sendMessage(monitor, 0.3f, true);
+ sendMessage(monitor, 0.3f, false);
sendMessage(monitor, 0.4f, false);
sendMessage(monitor, 0.01f, true);
sendMessage(monitor, 0.01f, false);
sendMessage(monitor, 0.1f, false);
sendMessage(monitor, 0.1f, false);
sendMessage(monitor, 0.01f, true);
- sendMessage(monitor, 1f, true);
+ sendMessage(monitor, 1f, false);
}
private void sendMessage(BatteryLevelMonitor monitor, float batteryLevel, boolean sentMessage)
@@ -130,4 +130,4 @@ public void retrieveState() throws Exception {
Map values = state2.getLevels();
assertThat(values, hasEntry(measurementKeyToString(key1), 0.1f));
}
-}
\ No newline at end of file
+}
diff --git a/src/test/java/org/radarcns/monitor/KafkaMonitorFactoryTest.java b/src/test/java/org/radarcns/monitor/KafkaMonitorFactoryTest.java
index cbfd41b5..67b7fe22 100644
--- a/src/test/java/org/radarcns/monitor/KafkaMonitorFactoryTest.java
+++ b/src/test/java/org/radarcns/monitor/KafkaMonitorFactoryTest.java
@@ -55,7 +55,8 @@ public void createBatteryMonitor() throws Exception {
assertEquals(BatteryLevelMonitor.class, monitor.getClass());
BatteryLevelMonitor batteryMonitor = (BatteryLevelMonitor) monitor;
batteryMonitor.evaluateRecords(new ConsumerRecords<>(Collections.emptyMap()));
- assertTrue(new File(config.getPersistencePath(), "battery_monitors_1.yml").isFile());
+ assertTrue(new File(config.getPersistencePath(), "battery_monitors_" +
+ BatteryLevelMonitor.class.getName() + "-1.yml").isFile());
}
@Test(expected = IOException.class)
@@ -79,7 +80,8 @@ public void createDisconnectMonitor() throws Exception {
assertEquals(DisconnectMonitor.class, monitor.getClass());
DisconnectMonitor disconnectMonitor = (DisconnectMonitor) monitor;
disconnectMonitor.evaluateRecords(new ConsumerRecords<>(Collections.emptyMap()));
- assertTrue(new File(config.getPersistencePath(), "disconnect_monitor_1.yml").isFile());
+ assertTrue(new File(config.getPersistencePath(), "disconnect_monitor_" +
+ DisconnectMonitor.class.getName() + "-1.yml").isFile());
}
@Test
@@ -148,4 +150,4 @@ public static ConfigRadar getBatteryMonitorConfig(int port, TemporaryFolder fold
config.setBatteryMonitor(getBatteryMonitorConfig(port));
return config;
}
-}
\ No newline at end of file
+}