Переглянути джерело

Changed encoding to UTF-8

Lukas Cerny 4 роки тому
батько
коміт
98954096c5

+ 0 - 105
config/example.yaml

@@ -1,105 +0,0 @@
-emailServers:
-  exampleEmailServer:
-    smtpHost: "<smtp_server>"
-    smtpPort: 465
-    authUsername: "username"
-    authPassword: "password"
-
-messageBrokers:
-  emailToAll:
-    type: EMAIL
-    config:
-      server: exampleEmailServer
-      senderEmail: "from@example.org"
-      recipientEmail: "to@example.org"
-      subject: "[watchdog] Example Report"
-  emailToTeam:
-    type: EMAIL
-    config:
-      server: exampleEmailServer
-      senderEmail: "from@example.org"
-      recipientEmail: "to@example.org"
-      subject: "[watchdog] Example Report"
-  signalEmergency:
-    type: SIGNAL
-    config:
-      recipientNumber: "+420 123 456 789"
-      senderNumber: "+420 123 456 789"
-      messagePattern: "No actual data from: $unit_id/$sensor_id"  # available props: $unit_id, $sensor_id, $timestamp, $value
-
-dataProviders:
-  wsServer1:
-    type: WEB_SERVICE
-    config:
-      baseUrl: "<senslog_domain_url>"
-      userName: "<user-name>"
-      groupName: "<group-name>"
-  wsServer2:
-    type: WEB_SERVICE
-    config:
-      baseUrl: "<senslog_domain_url>"
-      userName: "<user-name>"
-      groupName: "<group-name>"
-  dbServer:
-    type: DATABASE
-    config:
-      url: "<jdbc_url>"
-      username: "<username>"
-      password: "<password>"
-      connectionPoolSize: 6
-      groupName: "<group_name>"
-
-groups:
-  group1Checker:
-    name: "Group name 1"
-    dataProvider: wsServer1
-    messageBroker: emailToTeam
-    resultType: ALL
-    period: 86400
-  group2Checker:
-    name: "Group name 2"
-    dataProvider: dbServer
-    messageBroker: emailToTeam
-    resultType: ALL
-    period: 86400
-  groupRealTime:
-    name: "Group name 3"
-    dataProvider: wsServer1
-    messageBroker: signalEmergency
-    resultType: FAIL
-
-superGroups:
-  sumarizeError:
-    name: "Sum group"
-    messageBroker: emailToAll
-    resultType: FAIL
-    period: 86400
-    groups: [ group1Checker, group2Checker ]
-
-monitoredObjects:
-  unit_id_1:
-    groups: [group1Checker, group2Checker]
-    period: 1440
-
-  unit_id_2:
-    period: 1440
-    groups: [groupRealTime]
-    sensors: [210000000, 220000000]
-
-  unit_id_3:
-    period: 1440
-    groups: [groupRealTime]
-    sensors:
-      310000000:
-        groups: [group1Checker]
-      320000000:
-        period: 2880
-
-  unit_id_4:
-    sensors:
-      410000000:
-        period: 2880
-        groups: [group1Checker]
-      420000000:
-        period: 1440
-        groups: [group1Checker]

+ 4 - 4
config/foodie.yaml

@@ -47,7 +47,7 @@ dataProviders:
 
 groups:
   kynsperk:
-    name: "Kynsperk"
+    name: "Kynšperk"
     active: false
     dataProvider: wsSensLogKynsperk
     messageBroker: emailToAll
@@ -55,7 +55,7 @@ groups:
     period: 86400
 
   rostenice:
-    name: "Rostenice"
+    name: "Roštěnice"
     active: true
     dataProvider: wsSensLogRostenice
     messageBroker: emailToAll
@@ -63,7 +63,7 @@ groups:
     period: 86400
 
   zcu:
-    name: "ZCU Robcice"
+    name: "ZČU Robčice"
     active: false
     dataProvider: wsSensLogZcu
     messageBroker: emailToAll
@@ -72,7 +72,7 @@ groups:
 
 superGroups:
   sumarizeError:
-    name: "Kynsperk & ZCU Robcice"
+    name: "Kynšperk & ZČU Robčice"
     messageBroker: emailToAll
     resultType: FAIL
     period: 86400

+ 12 - 3
config/test-foodie.yaml

@@ -25,6 +25,12 @@ messageBrokers:
         - "luccerny@ntis.zcu.cz"
       subject: "[Watchdog] Test Report SensLog (CZ)"
 
+  console:
+    type: CONSOLE
+    config:
+      messagePattern: "No actual data from: $unit_id/$sensor_id"  # available props: $unit_id, $sensor_id, $timestamp, $value
+      level: INFO
+
 dataProviders:
   wsSensLogKynsperk:
     type: WEB_SERVICE
@@ -46,21 +52,24 @@ dataProviders:
 
 groups:
   kynsperk:
-    name: "Kynsperk"
+    name: "Kynšperk"
+    active: false
     dataProvider: wsSensLogKynsperk
     messageBroker: emailToAll
     resultType: FAIL
     period: 86400
 
   rostenice:
-    name: "Rostenice"
+    name: "Roštěnice"
+    active: false
     dataProvider: wsSensLogRostenice
     messageBroker: emailToAll
     resultType: FAIL
     period: 86400
 
   zcu:
-    name: "ZCU Robcice"
+    name: "ZČU Robčice"
+    active: true
     dataProvider: wsSensLogZcu
     messageBroker: emailToAll
     resultType: FAIL

+ 6 - 0
src/main/java/cz/senslog/watchdog/app/Application.java

@@ -20,6 +20,7 @@ import java.time.LocalDateTime;
 import java.time.LocalTime;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.TimeZone;
 
 public class Application extends Thread {
 
@@ -50,6 +51,11 @@ public class Application extends Thread {
 
     @Override
     public void run() {
+        int timeZoneOffset = TimeZone.getDefault().getRawOffset() / 1000 / 3600;
+        String timeZoneName = TimeZone.getDefault().getID();
+        logger.info("Executed at the timezone '{}' with the offset '{}{}:00'.",
+                timeZoneName, timeZoneOffset < 0 ? "-" : "+", String.format("%02d", timeZoneOffset)
+        );
 
         String configFilePath = params.getConfigFileName();
         Configuration config = null;

+ 1 - 1
src/main/java/cz/senslog/watchdog/core/Watcher.java

@@ -117,7 +117,7 @@ public class Watcher {
         operationProperties.put("Group name", group.getConfig().getName());
 
         messageBroker.send(new Report(ofInstant(now, ZoneId.systemDefault()), reports, reportedMessages, operationProperties), status -> {
-            String brokerType = status.getBrokerName();
+            String brokerType = status.getBrokerName().toLowerCase();
             if (status.isSuccess()) {
                 logger.info("The report at '{}' was send via '{}' broker successfully for the group's name '{}'.",
                         status.getCreatedReport(), brokerType, group.getConfig().getName()

+ 1 - 1
src/main/java/cz/senslog/watchdog/core/connection/EmailServerConnection.java

@@ -45,7 +45,7 @@ public class EmailServerConnection {
         message.setSubject(messageConfig.getSubject());
 
         MimeBodyPart mimeBodyPart = new MimeBodyPart();
-        mimeBodyPart.setContent(content, "text/html");
+        mimeBodyPart.setContent(content, "text/html;charset=UTF-8");
 
         Multipart multipart = new MimeMultipart();
         multipart.addBodyPart(mimeBodyPart);

+ 4 - 3
src/main/java/cz/senslog/watchdog/messagebroker/broker/EmailMessageBroker.java

@@ -72,9 +72,10 @@ public class EmailMessageBroker extends MultiMessageBroker {
 
         if (isRecords) {
             TableWriter tableReportWriter = HtmlTableWriter.createWithHeader("width: 100%;", "background-color: #dddddd")
-                    .cell("unitName (unitId)").cell("sensorName (sensorId)").cell("timestamp").cell("reported").cell("status").end();
+                    .cell("unitName (unitId)").cell("sensorName (sensorId)")
+                    .cell("timestamp")/*.cell("reported")*/.cell("status").end();
 
-            String reportedTime = report.getCreated().format(ofPattern("yyyy-MM-dd HH:mm:ss"));
+        //    String reportedTime = report.getCreated().format(ofPattern("yyyy-MM-dd HH:mm:ss"));
 
             report.getReports().sort(Comparator.comparing(SimpleReport::getStatus).reversed());
             for (SimpleReport simpleReport : report.getReports()) {
@@ -90,7 +91,7 @@ public class EmailMessageBroker extends MultiMessageBroker {
                             .cell(unitCell, rowStyle)
                             .cell(sensorCell, rowStyle)
                             .cell(observation.getTimestamp().toString(), rowStyle)
-                            .cell(reportedTime, rowStyle)
+                          //  .cell(reportedTime, rowStyle)
                             .cell(simpleReport.getStatus().name(), rowStyle)
                             .end();
                 }

+ 3 - 2
src/main/java/cz/senslog/watchdog/provider/ws/WSSensLogDataProvider.java

@@ -13,6 +13,7 @@ import java.util.*;
 import static cz.senslog.watchdog.config.DataProviderType.WEB_SERVICE;
 import static java.time.format.DateTimeFormatter.ofPattern;
 import static java.util.Collections.emptyList;
+import static java.nio.charset.StandardCharsets.UTF_8;
 
 public class WSSensLogDataProvider implements DataProvider {
 
@@ -48,9 +49,9 @@ public class WSSensLogDataProvider implements DataProvider {
         if (isServerAlive) {
             for (Map<String, Object> obMap : lastObservations) {
                 long unitId = ((Double) obMap.get("unitId")).longValue();
-                String unitName = (String) obMap.getOrDefault("unitName", DEFAULT_NAME);
+                String unitName = new String(obMap.getOrDefault("unitName", DEFAULT_NAME).toString().getBytes(), UTF_8);
                 long sensorId = ((Double) obMap.get("sensorId")).longValue();
-                String sensorName = (String) obMap.getOrDefault("sensorName", DEFAULT_NAME);
+                String sensorName = new String(obMap.getOrDefault("sensorName", DEFAULT_NAME).toString().getBytes(), UTF_8);
                 OffsetDateTime timestamp = OffsetDateTime.parse((String)obMap.get("lastTimest"), TIMESTAMP_PATTERN);
 
                 String unitIdStr = String.format("%d", unitId);