Skip to content

Commit 30ad28c

Browse files
shivam71sid-srini
authored andcommitted
Notebook configurations related changes 1. Made classpath,modulepath and add modules configs as array type on frontend 2. Corresponding changes on backend to process the array 3. Updated notebook configs unit tests
1 parent ec21110 commit 30ad28c

File tree

3 files changed

+40
-17
lines changed

3 files changed

+40
-17
lines changed

nbcode/notebooks/src/org/netbeans/modules/nbcode/java/notebook/NotebookConfigs.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import com.google.gson.JsonArray;
1919
import com.google.gson.JsonObject;
2020
import com.google.gson.JsonPrimitive;
21+
import java.io.File;
2122
import java.util.ArrayList;
2223
import java.util.List;
2324
import java.util.concurrent.CompletableFuture;
@@ -117,13 +118,13 @@ private CompletableFuture<Void> initializeConfigs() {
117118
return configValues.thenAccept((c) -> {
118119
if (c != null) {
119120
if (c.get(0) != null) {
120-
classPath = ((JsonPrimitive) c.get(0)).getAsString();
121+
classPath = String.join(File.pathSeparator,((JsonArray) c.get(0)).asList().stream().map((elem) -> elem.getAsString()).toList());
121122
}
122123
if (c.get(1) != null) {
123-
modulePath = ((JsonPrimitive) c.get(1)).getAsString();
124+
modulePath = String.join(File.pathSeparator,((JsonArray) c.get(1)).asList().stream().map((elem) -> elem.getAsString()).toList());
124125
}
125126
if (c.get(2) != null) {
126-
addModules = ((JsonPrimitive) c.get(2)).getAsString();
127+
addModules = String.join(",",((JsonArray) c.get(2)).asList().stream().map((elem) -> elem.getAsString()).toList());
127128
}
128129
if (c.get(3) != null) {
129130
enablePreview = ((JsonPrimitive) c.get(3)).getAsBoolean();

nbcode/notebooks/test/unit/src/org/netbeans/modules/nbcode/java/notebook/NotebookConfigsTest.java

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import com.google.gson.JsonObject;
2020
import com.google.gson.JsonArray;
2121
import com.google.gson.JsonPrimitive;
22+
import java.io.File;
2223
import java.util.ArrayList;
2324
import java.util.List;
2425
import java.util.concurrent.CompletableFuture;
@@ -38,13 +39,14 @@
3839

3940
/*
4041
Version 1 21/08/25
42+
Version 2 25/09/25 Inline with frontend sending arrays for CP,MP,Add modules
4143
*/
4244

4345
/**
4446
* Mock LSP Client sending sample configurations
4547
* Verifies that the NotebookConfigs class
4648
* parses and handles configurations appropriately
47-
*
49+
*
4850
* @author shimadan
4951
*/
5052
public class NotebookConfigsTest {
@@ -61,7 +63,7 @@ public class NotebookConfigsTest {
6163
public NotebookConfigsTest() {
6264
}
6365

64-
@Before
66+
@Before
6567
public void setUp() {
6668
setConfigObject();
6769
LanguageClientInstance.getInstance().
@@ -97,7 +99,7 @@ public void testGetClassPath() {
9799
System.out.println("getClassPath");
98100
try {
99101
initialized.get(5, TimeUnit.SECONDS);
100-
String expResult = configsObj.get(CLASSPATH_KEY).getAsString();
102+
String expResult = String.join(File.pathSeparator, (configsObj.get(CLASSPATH_KEY).getAsJsonArray()).asList().stream().map((elem) -> elem.getAsString()).toList());
101103
String result = instance.getClassPath();
102104
assertEquals(expResult, result);
103105
} catch (Exception ex) {
@@ -114,7 +116,7 @@ public void testGetModulePath() {
114116

115117
try {
116118
initialized.get(5, TimeUnit.SECONDS);
117-
String expResult = configsObj.get(MODULEPATH_KEY).getAsString();
119+
String expResult = String.join(File.pathSeparator, (configsObj.get(MODULEPATH_KEY).getAsJsonArray()).asList().stream().map((elem) -> elem.getAsString()).toList());
118120
String result = instance.getModulePath();
119121
assertEquals(expResult, result);
120122
} catch (Exception ex) {
@@ -130,7 +132,7 @@ public void testGetAddModules() {
130132
System.out.println("getAddModules");
131133
try {
132134
initialized.get(5, TimeUnit.SECONDS);
133-
String expResult = configsObj.get(ADD_MODULES_KEY).getAsString();
135+
String expResult = String.join(",",(configsObj.get(ADD_MODULES_KEY).getAsJsonArray()).asList().stream().map((elem) -> elem.getAsString()).toList());
134136
String result = instance.getAddModules();
135137
assertEquals(expResult, result);
136138
} catch (Exception ex) {
@@ -177,10 +179,18 @@ private void setConfigObject() {
177179
imports.add(new JsonPrimitive("java.math.*"));
178180
imports.add(new JsonPrimitive("javafx.scene.control.*"));
179181
configsObj.add(IMPLICIT_IMPORTS_KEY, imports);
180-
configsObj.add(CLASSPATH_KEY, new JsonPrimitive("path/to/javafx-sdk-24.0.1/lib/javafx.base.jar"));
181-
configsObj.add(MODULEPATH_KEY, new JsonPrimitive("/path/to/javafx-sdk/lib"));
182+
JsonArray classpath = new JsonArray();
183+
classpath.add(new JsonPrimitive(
184+
"path/to/javafx-sdk-24.0.1/lib/javafx.base.jar"));
185+
configsObj.add(CLASSPATH_KEY, classpath);
186+
JsonArray modulepath = new JsonArray();
187+
modulepath.add(new JsonPrimitive("/path/to/javafx-sdk/lib"));
188+
configsObj.add(MODULEPATH_KEY, modulepath);
182189
configsObj.add(ENABLE_PREVIEW_KEY, new JsonPrimitive(false));
183-
configsObj.add(ADD_MODULES_KEY, new JsonPrimitive("javafx.controls,javafx.graphics"));
190+
JsonArray addModules = new JsonArray();
191+
addModules.add(new JsonPrimitive("javafx.controls"));
192+
addModules.add(new JsonPrimitive("javafx.graphics"));
193+
configsObj.add(ADD_MODULES_KEY, addModules);
184194

185195
}
186196

vscode/package.json

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -255,18 +255,27 @@
255255
"description": "%jdk.debugger.configuration.completion.warning.time.description%"
256256
},
257257
"jdk.notebook.classpath": {
258-
"type": "string",
259-
"default": "",
258+
"type": "array",
259+
"items": {
260+
"type": "string"
261+
},
262+
"default": [],
260263
"description": "%jdk.notebook.classpath.description%"
261264
},
262265
"jdk.notebook.modulepath": {
263-
"type": "string",
264-
"default": "",
266+
"type": "array",
267+
"items": {
268+
"type": "string"
269+
},
270+
"default": [],
265271
"description": "%jdk.notebook.modulepath.description%"
266272
},
267273
"jdk.notebook.addmodules": {
268-
"type": "string",
269-
"default": "",
274+
"type": "array",
275+
"items": {
276+
"type": "string"
277+
},
278+
"default": [],
270279
"description": "%jdk.notebook.addmodules.description%"
271280
},
272281
"jdk.notebook.enablePreview": {
@@ -276,6 +285,9 @@
276285
},
277286
"jdk.notebook.implicitImports": {
278287
"type": "array",
288+
"items": {
289+
"type": "string"
290+
},
279291
"default": [
280292
"java.util.*",
281293
"java.io.*",

0 commit comments

Comments
 (0)