|
1 | 1 | package org.dflib.jjava.jupyter.kernel; |
2 | 2 |
|
3 | | -import com.google.gson.Gson; |
4 | | -import com.google.gson.reflect.TypeToken; |
5 | 3 | import org.dflib.jjava.jupyter.ExtensionLoader; |
6 | 4 | import org.dflib.jjava.jupyter.channels.JupyterConnection; |
7 | 5 | import org.dflib.jjava.jupyter.channels.ShellReplyEnvironment; |
|
40 | 38 | import org.dflib.jjava.jupyter.messages.request.KernelInfoRequest; |
41 | 39 | import org.dflib.jjava.jupyter.messages.request.ShutdownRequest; |
42 | 40 |
|
43 | | -import java.io.IOException; |
44 | 41 | import java.io.InputStream; |
45 | | -import java.io.InputStreamReader; |
46 | 42 | import java.io.PrintStream; |
47 | 43 | import java.io.PrintWriter; |
48 | | -import java.io.Reader; |
49 | 44 | import java.io.StringWriter; |
50 | 45 | import java.util.ArrayList; |
51 | 46 | import java.util.Collections; |
52 | 47 | import java.util.EnumSet; |
53 | 48 | import java.util.List; |
54 | | -import java.util.Map; |
55 | 49 | import java.util.Objects; |
56 | 50 | import java.util.Set; |
57 | 51 | import java.util.concurrent.atomic.AtomicInteger; |
58 | 52 |
|
59 | | - |
60 | 53 | public abstract class BaseKernel { |
61 | 54 |
|
62 | 55 | public static final String IS_COMPLETE_YES = "complete"; |
63 | 56 | public static final String IS_COMPLETE_BAD = "invalid"; |
64 | 57 | public static final String IS_COMPLETE_MAYBE = "unknown"; |
65 | 58 |
|
66 | | - // TODO: merge "kernel-metadata.json" values into "kernel.json" and stop using it |
67 | | - protected static final Map<String, String> KERNEL_META = createMetadata(); |
68 | | - |
69 | | - private static Map<String, String> createMetadata() { |
70 | | - |
71 | | - InputStream metaStream = BaseKernel.class.getClassLoader().getResourceAsStream("kernel-metadata.json"); |
72 | | - if (metaStream != null) { |
73 | | - try (Reader metaReader = new InputStreamReader(metaStream)) { |
74 | | - return new Gson().fromJson(metaReader, new TypeToken<Map<String, String>>() { |
75 | | - }.getType()); |
76 | | - } catch (IOException e) { |
77 | | - e.printStackTrace(); |
78 | | - } |
79 | | - } |
80 | | - |
81 | | - return Map.of("version", "unknown", "project", "unknown"); |
82 | | - } |
83 | | - |
84 | 59 | // TODO: create some kind of metadata object to combine these properties? |
85 | 60 | protected final String name; |
86 | 61 | protected final String version; |
@@ -134,6 +109,10 @@ protected BaseKernel( |
134 | 109 | Text.registerAll(this.renderer); |
135 | 110 | } |
136 | 111 |
|
| 112 | + public String getName() { |
| 113 | + return name; |
| 114 | + } |
| 115 | + |
137 | 116 | public String getVersion() { |
138 | 117 | return version; |
139 | 118 | } |
@@ -491,11 +470,8 @@ private void handleKernelInfoRequest(ShellReplyEnvironment env, Message<KernelIn |
491 | 470 | env.setBusyDeferIdle(); |
492 | 471 | env.reply(new KernelInfoReply( |
493 | 472 | Header.PROTOCOL_VERISON, |
494 | | - |
495 | | - // TODO: use "name" and "version" properties |
496 | | - KERNEL_META.get("project"), |
497 | | - KERNEL_META.get("version"), |
498 | | - |
| 473 | + name, |
| 474 | + version, |
499 | 475 | getLanguageInfo(), |
500 | 476 | getBanner(), |
501 | 477 | getHelpLinks() |
|
0 commit comments