+ });
+
+ dbusconnection.addSigHandler(Signal.ReceiptReceived.class, receiptReceived -> {
+ if (jsonProcessor != null) {
+ JsonMessageEnvelope envelope = new JsonMessageEnvelope(receiptReceived);
+ ObjectNode result = jsonProcessor.createObjectNode();
+ result.putPOJO("envelope", envelope);
+ try {
+ jsonProcessor.writeValue(System.out, result);
+ System.out.println();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ } else {
+ System.out.print(String.format("Receipt from: %s\nTimestamp: %s\n",
+ receiptReceived.getSender(),
+ DateUtils.formatTimestamp(receiptReceived.getTimestamp())));
+ }
+ });
+
+ dbusconnection.addSigHandler(Signal.SyncMessageReceived.class, syncReceived -> {
+ if (jsonProcessor != null) {
+ JsonMessageEnvelope envelope = new JsonMessageEnvelope(syncReceived);
+ ObjectNode result = jsonProcessor.createObjectNode();
+ result.putPOJO("envelope", envelope);
+ try {
+ jsonProcessor.writeValue(System.out, result);
+ System.out.println();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ } else {
+ System.out.print(String.format("Sync Envelope from: %s to: %s\nTimestamp: %s\nBody: %s\n",
+ syncReceived.getSource(),
+ syncReceived.getDestination(),
+ DateUtils.formatTimestamp(syncReceived.getTimestamp()),
+ syncReceived.getMessage()));
+ if (syncReceived.getGroupId().length > 0) {
+ System.out.println("Group info:");
+ System.out.println(" Id: " + Base64.encodeBytes(syncReceived.getGroupId()));
+ }
+ if (syncReceived.getAttachments().size() > 0) {
+ System.out.println("Attachments: ");
+ for (String attachment : syncReceived.getAttachments()) {
+ System.out.println("- Stored plaintext in: " + attachment);
+ }
+ }
+ System.out.println();
+ }
+ });
+ } catch (UnsatisfiedLinkError e) {
+ System.err.println("Missing native library dependency for dbus service: " + e.getMessage());
+ return 1;
+ } catch (DBusException e) {
+ e.printStackTrace();
+ return 1;
+ }
+ while (true) {
+ try {
+ Thread.sleep(10000);
+ } catch (InterruptedException e) {
+ return 0;