From 63202d5a43a0746610bd13184f46d96892bcd857 Mon Sep 17 00:00:00 2001 From: David Roden Date: Sat, 25 Jan 2025 16:41:04 +0100 Subject: [PATCH] =?utf8?q?=E2=99=BB=EF=B8=8F=20Create=20event=20JSON=20usi?= =?utf8?q?ng=20Jackson?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- server/pom.xml | 7 +++++++ server/src/main/java/de/qsheltier/msta/Server.java | 19 +++++++++++++++++-- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/server/pom.xml b/server/pom.xml index bb53ad9..00b8bb4 100644 --- a/server/pom.xml +++ b/server/pom.xml @@ -14,4 +14,11 @@ MSTA – Server Manual Software Testing Avoidance – Server Component + + + com.fasterxml.jackson.core + jackson-databind + + + diff --git a/server/src/main/java/de/qsheltier/msta/Server.java b/server/src/main/java/de/qsheltier/msta/Server.java index f9419a4..0ebfa8a 100644 --- a/server/src/main/java/de/qsheltier/msta/Server.java +++ b/server/src/main/java/de/qsheltier/msta/Server.java @@ -1,5 +1,7 @@ package de.qsheltier.msta; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; import java.awt.Component; import java.awt.Frame; import java.awt.Window; @@ -16,6 +18,8 @@ import java.net.ServerSocket; import java.net.Socket; import java.net.SocketAddress; import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; import java.util.concurrent.CountDownLatch; import java.util.concurrent.atomic.AtomicBoolean; import java.util.function.Consumer; @@ -135,7 +139,7 @@ public class Server implements Closeable { .filter(window -> !lastOpenWindows.contains(window)) .toList(); openWindows.stream() - .map(window -> "{\"event\":\"new-window\"}") + .map(window -> createEvent("new-window")) .forEach(writeLine); var openFrames = allWindows.stream() @@ -144,7 +148,7 @@ public class Server implements Closeable { .filter(frame -> !lastOpenFrames.contains(frame)) .toList(); openFrames.stream() - .map(window -> "{\"event\":\"new-frame\"}") + .map(frame -> createEvent("new-frame")) .forEach(writeLine); lastOpenWindows.addAll(openWindows); @@ -168,6 +172,17 @@ public class Server implements Closeable { } } + private String createEvent(String name) { + Map reply = new HashMap<>(); + reply.put("event", name); + try { + return objectMapper.writeValueAsString(reply); + } catch (JsonProcessingException e) { + return ""; + } + } + + private final ObjectMapper objectMapper = new ObjectMapper(); private final ServerSocket serverSocket = new ServerSocket(); private final Runnable shutdownHook; private final AtomicBoolean closed = new AtomicBoolean(false); -- 2.7.4