Skip to content

Commit 386be22

Browse files
committed
Constructor init of java.lsp.server JavaPlatformProvider override
1. Allowed LspJavaPlatformProviderOverride to initialize the override based on the value set for the option "netbeans.lsp.java.platform.override" passed as a JVM system property. 2. Utilised platform override system property in Java VSCode extension 1. From the Java VSCode extension, passed the value of "jdk.project.jdkhome" configuration to the NBLS via the JVM system property flag "netbeans.lsp.java.platform.override". 2. This additionally allows the LspJavaPlatformProviderOverride to initialize the JavaPlatform override during construction, avoiding any caching of the default platform prior to the configuration being read via LSP.
1 parent 04ce72f commit 386be22

File tree

5 files changed

+33
-1
lines changed

5 files changed

+33
-1
lines changed

build.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@
6464
patches/8460-draft.diff
6565
patches/8470.diff
6666
patches/8484.diff
67+
patches/8745-draft.diff
6768
patches/disable-error-notification.diff
6869
patches/mvn-sh.diff
6970
patches/project-marker-jdk.diff

nbcode/integration/src/org/netbeans/modules/nbcode/integration/LspJavaPlatformProviderOverride.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,4 +28,8 @@
2828
*/
2929
@ServiceProvider(service = JavaPlatformProvider.class, position = 10_000)
3030
public class LspJavaPlatformProviderOverride extends AbstractJavaPlatformProviderOverride {
31+
32+
public LspJavaPlatformProviderOverride() {
33+
super(System.getProperty("netbeans.lsp.java.platform.override", null)); //NOI18N
34+
}
3135
}

patches/8745-draft.diff

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
diff --git a/java/java.lsp.server/src/org/netbeans/modules/java/lsp/server/ui/AbstractJavaPlatformProviderOverride.java b/java/java.lsp.server/src/org/netbeans/modules/java/lsp/server/ui/AbstractJavaPlatformProviderOverride.java
2+
index df668954dd..054f85d0e5 100644
3+
--- a/java/java.lsp.server/src/org/netbeans/modules/java/lsp/server/ui/AbstractJavaPlatformProviderOverride.java
4+
+++ b/java/java.lsp.server/src/org/netbeans/modules/java/lsp/server/ui/AbstractJavaPlatformProviderOverride.java
5+
@@ -39,6 +39,14 @@ public abstract class AbstractJavaPlatformProviderOverride implements JavaPlatfo
6+
private final PropertyChangeSupport pcs = new PropertyChangeSupport(this);
7+
private FileObject defaultPlatformOverride;
8+
9+
+ public AbstractJavaPlatformProviderOverride() {
10+
+ this(null);
11+
+ }
12+
+
13+
+ protected AbstractJavaPlatformProviderOverride(String defaultPlatformOverride) {
14+
+ this.defaultPlatformOverride = defaultPlatformOverride == null ? null : FileUtil.toFileObject(new File(defaultPlatformOverride));
15+
+ }
16+
+
17+
@Override
18+
@SuppressWarnings("ReturnOfCollectionOrArrayField")
19+
public JavaPlatform[] getInstalledPlatforms() {

vscode/src/configurations/handlers.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,10 @@ export const jdkHomeValueHandler = (): string | null => {
5555
null;
5656
}
5757

58+
export const projectJdkHomeValueHandler = (): string | null => {
59+
return getConfigurationValue(configKeys.projectJdkHome, null);
60+
}
61+
5862
export const projectSearchRootsValueHandler = (): string => {
5963
let projectSearchRoots: string = '';
6064
const isProjectFolderSearchLimited: boolean = !getConfigurationValue(configKeys.disableProjSearchLimit, false);

vscode/src/lsp/launchOptions.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
limitations under the License.
1515
*/
1616
import { builtInConfigKeys, configKeys } from "../configurations/configuration"
17-
import { isDarkColorThemeHandler, isNetbeansVerboseEnabled, jdkHomeValueHandler, lspServerVmOptionsHandler, projectSearchRootsValueHandler, userdirHandler } from "../configurations/handlers";
17+
import { isDarkColorThemeHandler, isNetbeansVerboseEnabled, jdkHomeValueHandler, projectJdkHomeValueHandler, lspServerVmOptionsHandler, projectSearchRootsValueHandler, userdirHandler } from "../configurations/handlers";
1818
import { l10n } from "../localiser";
1919
import { isString } from "../utils";
2020
import { userDefinedLaunchOptionsType } from "./types"
@@ -25,6 +25,10 @@ export const getUserConfigLaunchOptionsDefaults = (): userDefinedLaunchOptionsTy
2525
value: jdkHomeValueHandler(),
2626
optionToPass: ['--jdkhome']
2727
},
28+
[configKeys.projectJdkHome]: {
29+
value: projectJdkHomeValueHandler(),
30+
optionToPass: '-J-Dnetbeans.lsp.java.platform.override='
31+
},
2832
[configKeys.userdir]: {
2933
value: userdirHandler(),
3034
optionToPass: ['--userdir']

0 commit comments

Comments
 (0)