diff --git a/build.gradle b/build.gradle index 17af1051..d5bc72bc 100644 --- a/build.gradle +++ b/build.gradle @@ -33,7 +33,7 @@ lombok { } group 'com.gotocompany' -version '0.9.6' +version '0.9.7' def projName = "firehose" diff --git a/src/main/java/com/gotocompany/firehose/serializer/MessageToJson.java b/src/main/java/com/gotocompany/firehose/serializer/MessageToJson.java index 69daeaa3..2a081d67 100644 --- a/src/main/java/com/gotocompany/firehose/serializer/MessageToJson.java +++ b/src/main/java/com/gotocompany/firehose/serializer/MessageToJson.java @@ -114,7 +114,7 @@ private JSONObject convertProtoBuffTimeStampToDateTime(JSONObject jsonObject, St Date date; try { - date = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ss").parse(timestampObject); + date = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss").parse(timestampObject); } catch (java.text.ParseException e) { throw new RuntimeException(String.format("Not able to parse date, %s", timestampObject)); } diff --git a/src/test/java/com/gotocompany/firehose/serializer/MessageToJsonTest.java b/src/test/java/com/gotocompany/firehose/serializer/MessageToJsonTest.java index 4d03e9cb..c67d4fc1 100644 --- a/src/test/java/com/gotocompany/firehose/serializer/MessageToJsonTest.java +++ b/src/test/java/com/gotocompany/firehose/serializer/MessageToJsonTest.java @@ -42,6 +42,24 @@ public void shouldProperlySerializeEsbMessage() throws DeserializerException { + "\\\"s2Id\\\":\\\"3344472187078705152\\\"}\"}"); } + @Test + public void shouldProperlyHandleMiddayCycle() throws DeserializerException { + MessageToJson messageToJson = new MessageToJson(protoParser, false, true); + + String logMessageWithMidday = "CgYI9/7PoQYSBgiz/8+hBhgNIICAgIDA9/y0LigCMAM\u003d"; + String logKeyWithMidday = "CgYI9/7PoQYSBgiz/8+hBhgNIICAgIDA9/y0LigC"; + Message message = new Message(Base64.getDecoder().decode(logKeyWithMidday.getBytes()), + Base64.getDecoder().decode(logMessageWithMidday.getBytes()), "sample-topic", 0, 100); + String actualOutput = messageToJson.serialize(message); + assertEquals(actualOutput, "{\"logMessage\":\"{\\\"uniqueDrivers\\\":\\\"3\\\"," + + "\\\"windowStartTime\\\":\\\"Apr 10, 2023 12:22:15 PM\\\"," + + "\\\"windowEndTime\\\":\\\"Apr 10, 2023 12:23:15 PM\\\",\\\"s2IdLevel\\\":13,\\\"vehicleType\\\":\\\"BIKE\\\"," + + "\\\"s2Id\\\":\\\"3344472187078705152\\\"}\",\"topic\":\"sample-topic\",\"logKey\":\"{" + + "\\\"windowStartTime\\\":\\\"Apr 10, 2023 12:22:15 PM\\\"," + + "\\\"windowEndTime\\\":\\\"Apr 10, 2023 12:23:15 PM\\\",\\\"s2IdLevel\\\":13,\\\"vehicleType\\\":\\\"BIKE\\\"," + + "\\\"s2Id\\\":\\\"3344472187078705152\\\"}\"}"); + } + @Test public void shouldSerializeWhenKeyIsMissing() throws DeserializerException { MessageToJson messageToJson = new MessageToJson(protoParser, false, true);