From 5632fafe6bae25992759a82e40b42c4cfbf1ddf8 Mon Sep 17 00:00:00 2001 From: dgelessus <dgelessus@users.noreply.github.com> Date: Thu, 14 May 2020 20:31:25 +0200 Subject: [PATCH] Change kernelspec JSON generation to use JsonElement APIs This way we do not need to define a custom class with naming annotations, etc. and can instead create the needed JSON structure directly by hand. We only need to use this JSON structure exactly once, so it's not worth the effort to properly map it to a native Java class representation. --- src/main/java/de/prob2/jupyter/Main.java | 25 +++++++----------------- 1 file changed, 7 insertions(+), 18 deletions(-) diff --git a/src/main/java/de/prob2/jupyter/Main.java b/src/main/java/de/prob2/jupyter/Main.java index de37197..574ab1f 100644 --- a/src/main/java/de/prob2/jupyter/Main.java +++ b/src/main/java/de/prob2/jupyter/Main.java @@ -13,13 +13,12 @@ import java.nio.file.StandardCopyOption; import java.security.CodeSource; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; -import java.util.ArrayList; -import java.util.List; import java.util.stream.Stream; import com.google.gson.Gson; import com.google.gson.GsonBuilder; -import com.google.gson.annotations.SerializedName; +import com.google.gson.JsonArray; +import com.google.gson.JsonObject; import com.google.inject.Guice; import com.google.inject.Injector; import com.google.inject.Stage; @@ -30,16 +29,6 @@ import io.github.spencerpark.jupyter.kernel.KernelConnectionProperties; import org.jetbrains.annotations.Nullable; public final class Main { - private static final class KernelJsonData { - List<String> argv; - @SerializedName("display_name") String displayName; - String language; - - KernelJsonData() { - super(); - } - } - private Main() { super(); @@ -110,7 +99,7 @@ public final class Main { } }); - final List<String> kernelJsonArgv = new ArrayList<>(); + final JsonArray kernelJsonArgv = new JsonArray(); kernelJsonArgv.add("java"); final String probHome = System.getProperty("prob.home"); @@ -126,10 +115,10 @@ public final class Main { kernelJsonArgv.add("run"); kernelJsonArgv.add("{connection_file}"); - final Main.KernelJsonData kernelJsonData = new Main.KernelJsonData(); - kernelJsonData.argv = kernelJsonArgv; - kernelJsonData.displayName = "ProB 2"; - kernelJsonData.language = "prob"; + final JsonObject kernelJsonData = new JsonObject(); + kernelJsonData.add("argv", kernelJsonArgv); + kernelJsonData.addProperty("display_name", "ProB 2"); + kernelJsonData.addProperty("language", "prob"); final Gson gson = new GsonBuilder() .setPrettyPrinting() -- GitLab