From 9024812845c3ee2aa581890d16fb725c1fe738a0 Mon Sep 17 00:00:00 2001 From: mapuo Date: Wed, 3 Jul 2019 11:22:47 +0300 Subject: [PATCH 1/3] log at trace level what we publish to MQTT --- src/main/java/biz/nynja/bridge/verticle/MQTTVerticle.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/biz/nynja/bridge/verticle/MQTTVerticle.java b/src/main/java/biz/nynja/bridge/verticle/MQTTVerticle.java index a59051c..ab0e871 100644 --- a/src/main/java/biz/nynja/bridge/verticle/MQTTVerticle.java +++ b/src/main/java/biz/nynja/bridge/verticle/MQTTVerticle.java @@ -159,9 +159,12 @@ public class MQTTVerticle extends AbstractVerticle { } private void publishMqttMessage(Future complete, MQTTModelBase mqttModelBase) { + byte[] publishBytes = mqttModelBase.getBertFormat(); + log.trace("publishBytes: {}", Arrays.toString(publishBytes)); + client.publish( configuration.getTopic(), - Buffer.buffer(mqttModelBase.getBertFormat()), + Buffer.buffer(publishBytes), MqttQoS.EXACTLY_ONCE, false, false, @@ -194,7 +197,6 @@ public class MQTTVerticle extends AbstractVerticle { boolean isErrorResponse = parse.isErrorMessage(); LogLevel logLevel = isErrorResponse ? LogLevel.ERROR : LogLevel.INFO; - DataEventsStatus eventStatus = dataEventsStatusCache.remove(id); if (Objects.isNull(eventStatus)) { -- GitLab From 98bc6ce1a1c0d9a469ab93e6a8183f5dc301adb4 Mon Sep 17 00:00:00 2001 From: mapuo Date: Wed, 3 Jul 2019 11:23:22 +0300 Subject: [PATCH 2/3] change mqtt host to uri --- src/main/resources/application-dev.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index ad88aed..ed2c534 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -12,7 +12,7 @@ grpc: port: 6580 mqtt: - host: 34.221.152.42 + host: nynja-dev-uw1-messaging01.dev-eu.nynja.net port: 1883 clientId: sys_micro_bridge_dev topic: events/1//api/anon// -- GitLab From 1e2bf0db5df1fd96977292ccd1ef03244caeba7b Mon Sep 17 00:00:00 2001 From: mapuo Date: Wed, 3 Jul 2019 11:24:08 +0300 Subject: [PATCH 3/3] handle io errors from erlang --- .../nynja/bridge/bert/OtpErlangParser.java | 52 ++++++++++++------- 1 file changed, 33 insertions(+), 19 deletions(-) diff --git a/src/main/java/biz/nynja/bridge/bert/OtpErlangParser.java b/src/main/java/biz/nynja/bridge/bert/OtpErlangParser.java index 8e4ac9e..26496db 100644 --- a/src/main/java/biz/nynja/bridge/bert/OtpErlangParser.java +++ b/src/main/java/biz/nynja/bridge/bert/OtpErlangParser.java @@ -38,29 +38,43 @@ public class OtpErlangParser { return null; } - private OtpErlangParser(OtpErlangTuple tuple) { - this.tuple = tuple; - this.isErrorMessage = headEqualsAtom(tuple, "errors"); - this.id = OtpErlangHelper.getId( + private OtpErlangParser(OtpErlangTuple parsedTuple) { + tuple = parsedTuple; + OtpErlangTuple errorTuple = extractError(parsedTuple); + isErrorMessage = errorTuple != null; + id = OtpErlangHelper.getId( (isErrorMessage) - ? extractProfileOrAccount() - : tuple); + ? errorTuple + : parsedTuple); } - private OtpErlangTuple extractProfileOrAccount() { - // error code - // String code = fromBin((OtpErlangBinary) ((OtpErlangList) errorsTuple.elementAt(1)).getHead()); - - // list of errors - OtpErlangList listOfErrors = (OtpErlangList) tuple.elementAt(2); - // first error - OtpErlangTuple head = (OtpErlangTuple) listOfErrors.getHead(); - - // atom with the element that is in error - // OtpErlangObject errorField = head.elementAt(0); + private OtpErlangTuple extractError(OtpErlangTuple tuple) { + + if (headEqualsAtom(tuple, "errors")) { + // error code + // String code = fromBin((OtpErlangBinary) ((OtpErlangList) errorsTuple.elementAt(1)).getHead()); + + // list of errors + OtpErlangList listOfErrors = (OtpErlangList) tuple.elementAt(2); + // first error + OtpErlangTuple head = (OtpErlangTuple) listOfErrors.getHead(); + + // atom with the element that is in error + // OtpErlangObject errorField = head.elementAt(0); + + // tuple - Profile | Account + return (OtpErlangTuple) head.elementAt(1); + } else if (headEqualsAtom(tuple, "io") + && headEqualsAtom((OtpErlangTuple) tuple.elementAt(1), "error")) { + // {io,{error,already_exist},#BinStr<'c937bd74-ff23-4e96-a4ed-6bc967582a8e'>} + return (OtpErlangTuple) OtpErlangBuilder.newTupleBuilder() + .addAtom("error") + .addObject(tuple.elementAt(2)) + .build() + .getObject(); + } - // tuple - Profile | Account - return (OtpErlangTuple) head.elementAt(1); + return null; } } -- GitLab