Skip to content

Commit e1fdb3e

Browse files
authored
Merge pull request OpenLiberty#572 from mattbsox/java21-docUpdate
Update docs and requirements.util to reflect Java 21 requirement
2 parents eb7fde7 + f67171a commit e1fdb3e

8 files changed

Lines changed: 20 additions & 18 deletions

File tree

CONTRIBUTING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
We welcome contributions, and request you follow these guidelines.
44

5-
> Note: Starting with the [0.1.12 early release](https://github.com/OpenLiberty/liberty-tools-vscode/releases/tag/0.1.12), Java 17 is required to run Liberty Tools for Visual Studio Code.
5+
> Note: Java 21 or later is required to run Liberty Tools for Visual Studio Code.
66
77
- [Raising issues](#raising-issues)
88
- [Legal](#legal)

DEVELOPING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Developing Liberty Tools for Visual Studio Code
22

3-
> Note: Starting with the [0.1.12 early release](https://github.com/OpenLiberty/liberty-tools-vscode/releases/tag/0.1.12), Java 17 is required to run Liberty Tools for Visual Studio Code.
3+
> Note: Java 21 or later is required to run Liberty Tools for Visual Studio Code.
44
55
- [Build Liberty Tools for Visual Studio Code](#build-liberty-tools-for-visual-studio-code)
66
- [Language Servers](#language-servers)

README.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Liberty Tools for Visual Studio Code
22

33
<!-- Match the VSCode and Java version in #requirements, and user-guide.md -->
4-
> Note: Requires **Visual Studio Code 1.78.0** or later, and **Java 17** or later.
4+
> Note: Requires **Visual Studio Code 1.78.0** or later, and **Java 21** or later.
55
>
66
> This page provides an overview of Liberty Tools for Visual Studio Code.
77
> For minimum requirements information and detailed instructions on how to use Liberty Tools, check the [user-guide](docs/user-guide.md).
@@ -88,9 +88,9 @@ The following commands are available when you select a project in the Liberty Da
8888
## Requirements
8989

9090
<!-- Match the VSCode and Java version on top of README.md, and user-guide.md -->
91-
**Visual Studio Code 1.78.0** or later, and **Java 17** or later.
91+
**Visual Studio Code 1.78.0** or later, and **Java 21** or later.
9292

93-
Liberty Tools for Visual Studio Code will check the `xml.java.home` VS Code setting or the `JAVA_HOME` system environment variable to ensure the LemMinX language server uses Java 17 or later. For further information on configuring your Java runtime for language servers, consult this [user guide section](/docs/user-guide.md#configure-your-java-runtime-for-language-servers).
93+
Liberty Tools for Visual Studio Code will check the `xml.java.home` VS Code setting or the `JAVA_HOME` system environment variable to ensure the LemMinX language server uses Java 21 or later. For further information on configuring your Java runtime for language servers, consult this [user guide section](/docs/user-guide.md#configure-your-java-runtime-for-language-servers).
9494

9595
The following extensions are bundled with Liberty Tools for Visual Studio Code during installation and are provided here for additional information.
9696

50.7 KB
Loading
21.9 KB
Loading

docs/user-guide.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ For information regarding known issues and limitations, refer to our [Common Iss
3030
### Software requirements
3131
<!-- Match the VSCode and Java version with the README.md -->
3232
- **Visual Studio Code 1.78.0** or later.
33-
- **Java 17** or later is required by Liberty Tools for Visual Studio Code. To point Visual Studio Code to a specific runtime, see [Settings](#settings) for more information.
33+
- **Java 21** or later is required by Liberty Tools for Visual Studio Code. To point Visual Studio Code to a specific runtime, see [Settings](#settings) for more information.
3434

3535
### Application requirements
3636

@@ -43,24 +43,24 @@ For information regarding known issues and limitations, refer to our [Common Iss
4343

4444
### Configure your Java runtime for language servers
4545

46-
Liberty Tools for Visual Studio Code requires Java 17 or later to ensure that the following language servers start properly:
46+
Liberty Tools for Visual Studio Code requires Java 21 or later to ensure that the following language servers start properly:
4747
- [Liberty Config Language Server](https://github.com/OpenLiberty/liberty-language-server)
4848
- [Eclipse Language Server for Jakarta EE](https://github.com/eclipse/lsp4jakarta)
4949
- [XML Language Server (LemMinX)](https://github.com/eclipse/lemminx)
5050

5151
A toast message alerts you if any language server fails to run or if Visual Studio Code has trouble locating your Java.
5252

5353
<img src="/docs/screenshots/update%20jdk%20toast.png" width="40%"/>
54-
<img src="/docs/screenshots/java_17_toast_alert.png" width="40%" />
54+
<img src="/docs/screenshots/java_21_toast_alert.png" width="40%" />
5555

56-
To resolve this issue, you can define settings in your Visual Studio Code [settings.json](https://code.visualstudio.com/docs/getstarted/settings#_settingsjson) file or set system environment variables to point Liberty Tools to Java 17 or later.
56+
To resolve this issue, you can define settings in your Visual Studio Code [settings.json](https://code.visualstudio.com/docs/getstarted/settings#_settingsjson) file or set system environment variables to point Liberty Tools to Java 21 or later.
5757

5858
For both Liberty Config Language Server and Eclipse Language Server for Jakarta EE, Liberty Tools for Visual Studio Code will check for the Java versions in the following order:
5959
1. `java.jdt.ls.java.home` in settings.json
6060
2. The [embedded JRE](https://github.com/redhat-developer/vscode-java#java-tooling-jdk) included by [Language Support for Java(TM) by Red Hat](https://marketplace.visualstudio.com/items?itemName=redhat.java).
6161
3. `JDK_HOME` or `JAVA_HOME` as system environment variables. (Note: if both `JDK_HOME` and `JAVA_HOME` are set, `JDK_HOME` will take precedence)
6262

63-
By default, Liberty Tools installs the latest version of the Language Support for Java(TM) by Red Hat extension. The latest version contains an embedded JRE higher than Java 17 and therefore no additional configuration is required. However, if using an older version of the Language Support for Java(TM) by Red Hat extension or using the universal version without the embedded JRE causes an issue, then `java.jdt.ls.java.home` or one of JDK_HOME or JAVA_HOME must be configured to use Java 17 or later.
63+
By default, Liberty Tools installs the latest version of the Language Support for Java(TM) by Red Hat extension. The latest version contains an embedded JRE higher than Java 21 and therefore no additional configuration is required. However, if using an older version of the Language Support for Java(TM) by Red Hat extension or using the universal version without the embedded JRE causes an issue, then `java.jdt.ls.java.home` or one of JDK_HOME or JAVA_HOME must be configured to use Java 21 or later.
6464

6565
For LemMinX, Liberty Tools for Visual Studio Code will check for the Java versions in the following order:
6666
1. `xml.java.home` in settings.json
@@ -76,7 +76,7 @@ For LemMinX, Liberty Tools for Visual Studio Code will check for the Java versio
7676
| `maven.executable.preferMavenWrapper` | Maven commands executed by dev mode honour this setting. If this setting set to `true`, dev mode tries to use `mvnw` if a Maven wrapper file can be found. Otherwise, it uses `mvn`. | [Maven for Java extension](https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-maven) |
7777
| `java.import.gradle.wrapper.enabled` | Gradle commands executed by dev mode honour this setting. If this setting is set to `true`, dev mode tries to use `gradlew` if a Gradle wrapper file can be found. Otherwise, it uses `gradle`. | [Language support for Java extension](https://marketplace.visualstudio.com/items?itemName=redhat.java) |
7878
| `xml.java.home` | This setting allows a user to define their LemMinX language server runtime without altering the `JAVA_HOME` environment variable. | Not set |
79-
| `java.jdt.ls.java.home` | This setting specifies the folder path to the JDK (17 or later) that is used to launch the Java Language Server. This setting replaces the Java extension's embedded JRE to start the language servers. | Not set |
79+
| `java.jdt.ls.java.home` | This setting specifies the folder path to the JDK (21 or later) that is used to launch the Java Language Server. This setting replaces the Java extension's embedded JRE to start the language servers. | Not set |
8080

8181
### Terminal shell support
8282

src/locales/en.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,11 +49,11 @@
4949
"liberty.dev.attach.debugger.failed.with.error": "Failed to attach debugger to selected project. The error is: {0}.",
5050
"liberty.dev.debug.label": "Debug {0}",
5151
"liberty.dev.attach.debugger.failed.no.port.in.server.env": "Failed to detect remote debug port in {0}.",
52-
"check.java.runtime.version.outdated": "Java 17 or later is required to run 'Liberty Tools for VS Code'. Download and install a recent Java SDK.",
52+
"check.java.runtime.version.outdated": "Java {0} or later is required to run 'Liberty Tools for VS Code'. Download and install a recent Java SDK.",
5353
"check.java.runtime.vscode.java.home": "The java.home variable defined in VS Code settings",
5454
"check.java.runtime.env.jdk.home": "The JDK_HOME environment variable",
5555
"check.java.runtime.env.java.home": "The JAVA_HOME environment variable",
56-
"define.xml.java.home.message": "The Liberty Config Language Server requires Java 17 or later. Set 'xml.java.home' in the VS Code settings or set the system JAVA_HOME environment variable to point to a Java 17 or later SDK.",
56+
"define.xml.java.home.message": "The Liberty Config Language Server requires Java {0} or later. Set 'xml.java.home' in the VS Code settings or set the system JAVA_HOME environment variable to point to a Java {0} or later SDK.",
5757
"check.java.runtime.dismiss.label": "Dismiss",
5858
"open.jdk.download.part.missing.folder": " points to a missing folder.",
5959
"open.jdk.download.part.no.runtime": " does not point to a Java runtime.",

src/util/requirements.ts

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ import { localize } from './i18nUtil';
2929
const isWindows = process.platform.indexOf('win') === 0;
3030
const JAVA_FILENAME = 'java' + (isWindows?'.exe': '');
3131

32+
const REQUIRED_JAVA_VERSION = 21;
33+
3234
export interface RequirementsData {
3335
tooling_jre: string;
3436
tooling_jre_version: number;
@@ -50,7 +52,7 @@ export async function resolveRequirements(api: JavaExtensionAPI): Promise<Requir
5052
const requirementsData = api.javaRequirement;
5153
// Java check for LSP4Jakarta and LCLS support
5254
// Reuse the embedded JRE from 'redhat.java' if it exists and passes check
53-
if (requirementsData && requirementsData.tooling_jre_version >= 17) {
55+
if (requirementsData && requirementsData.tooling_jre_version >= REQUIRED_JAVA_VERSION) {
5456
return Promise.resolve(requirementsData);
5557
}
5658

@@ -108,16 +110,16 @@ function readJavaHomeConfig(property: string): string|undefined {
108110
return (javaHome != null) ? javaHome : config.get<string>('java.home');
109111
}
110112

111-
// Provided javaHome, parse major version and reject sub Java17
113+
// Provided javaHome, parse major version and reject sub Java21
112114
function checkJavaVersion(javaHome: string, promptDownload: boolean): Promise<number> {
113115
return new Promise((resolve, reject) => {
114116
cp.execFile(javaHome + '/bin/java', ['-version'], {}, (error, stdout, stderr) => {
115117
const javaVersion = parseMajorVersion(stderr);
116-
if (javaVersion < 17) {
118+
if (javaVersion < REQUIRED_JAVA_VERSION) {
117119
if (promptDownload) {
118-
openJDKDownload(reject, localize("check.java.runtime.version.outdated"));
120+
openJDKDownload(reject, localize("check.java.runtime.version.outdated", REQUIRED_JAVA_VERSION));
119121
} else {
120-
defineXmlJavaHome(reject, localize("define.xml.java.home.message"));
122+
defineXmlJavaHome(reject, localize("define.xml.java.home.message", REQUIRED_JAVA_VERSION));
121123
}
122124
} else {
123125
resolve(javaVersion);

0 commit comments

Comments
 (0)