Skip to content

Commit 133f9f3

Browse files
Ignore the unsupported java versions when auto detecting the installed jdks (#3258)
1 parent 6cc071a commit 133f9f3

3 files changed

Lines changed: 18 additions & 3 deletions

File tree

src/extension.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ import { Telemetry } from './telemetry';
3535
import { getMessage } from './errorUtils';
3636
import { TelemetryService } from '@redhat-developer/vscode-redhat-telemetry/lib';
3737
import { activationProgressNotification } from "./serverTaskPresenter";
38+
import { loadSupportedJreNames } from './jdkUtils';
3839

3940
const syntaxClient: SyntaxLanguageClient = new SyntaxLanguageClient();
4041
const standardClient: StandardLanguageClient = new StandardLanguageClient();
@@ -81,7 +82,8 @@ function getHeapDumpFolderFromSettings(): string {
8182
}
8283

8384

84-
export function activate(context: ExtensionContext): Promise<ExtensionAPI> {
85+
export async function activate(context: ExtensionContext): Promise<ExtensionAPI> {
86+
await loadSupportedJreNames(context);
8587
context.subscriptions.push(markdownPreviewProvider);
8688
context.subscriptions.push(commands.registerCommand(Commands.TEMPLATE_VARIABLES, async () => {
8789
markdownPreviewProvider.show(context.asAbsolutePath(path.join('document', `${Commands.TEMPLATE_VARIABLES}.md`)), 'Predefined Variables', "", context);

src/jdkUtils.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,20 @@
11
'use strict';
22

33
import { IJavaRuntime, findRuntimes, getSources } from 'jdk-utils';
4+
import { ExtensionContext, Uri, workspace } from 'vscode';
45

56
let cachedJdks: IJavaRuntime[];
7+
let cachedJreNames: string[];
8+
9+
export async function loadSupportedJreNames(context: ExtensionContext): Promise<void> {
10+
const buffer = await workspace.fs.readFile(Uri.file(context.asAbsolutePath("package.json")));
11+
const packageJson = JSON.parse(buffer.toString());
12+
cachedJreNames = packageJson?.contributes?.configuration?.properties?.["java.configuration.runtimes"]?.items?.properties?.name?.enum;
13+
}
14+
15+
export function getSupportedJreNames(): string[] {
16+
return cachedJreNames;
17+
}
618

719
export async function listJdks(force?: boolean): Promise<IJavaRuntime[]> {
820
if (force || !cachedJdks) {

src/utils.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import * as path from 'path';
55
import { workspace, WorkspaceConfiguration, commands, Uri, version } from 'vscode';
66
import { Commands } from './commands';
77
import { IJavaRuntime } from 'jdk-utils';
8-
import { listJdks, sortJdksBySource, sortJdksByVersion } from './jdkUtils';
8+
import { getSupportedJreNames, listJdks, sortJdksBySource, sortJdksByVersion } from './jdkUtils';
99

1010
export function getJavaConfiguration(): WorkspaceConfiguration {
1111
return workspace.getConfiguration('java');
@@ -228,6 +228,7 @@ async function addAutoDetectedJdks(configuredJREs: any[]): Promise<any[]> {
228228
sortJdksByVersion(autoDetectedJREs);
229229
sortJdksBySource(autoDetectedJREs);
230230
const addedJreNames: Set<string> = new Set<string>();
231+
const supportedJreNames: string[] = getSupportedJreNames();
231232
for (const jre of configuredJREs) {
232233
if (jre.name) {
233234
addedJreNames.add(jre.name);
@@ -246,7 +247,7 @@ async function addAutoDetectedJdks(configuredJREs: any[]): Promise<any[]> {
246247
jreName = `JavaSE-1.${majorVersion}`;
247248
}
248249

249-
if (addedJreNames.has(jreName)) {
250+
if (addedJreNames.has(jreName) || !supportedJreNames?.includes(jreName)) {
250251
continue;
251252
}
252253

0 commit comments

Comments
 (0)