Skip to content

Commit 7e757c1

Browse files
Merge remote-tracking branch 'upstream/main' into constants#1153
2 parents d701be1 + f1bc140 commit 7e757c1

File tree

82 files changed

+2979
-252
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

82 files changed

+2979
-252
lines changed

.github/workflows/cronJob.yaml

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,11 @@ name: Cron Job
22

33
on:
44
workflow_dispatch:
5-
schedule:
6-
# The job runs at 9:30 AM UTC every Monday through Friday, which is 3:00 PM IST and 4:30 AM EST.
7-
# Ref - https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#onschedule
8-
- cron: '30 9 * * 1-5'
5+
# Temporarily turn off the LSP4IJ integration till https://github.com/OpenLiberty/liberty-tools-intellij/issues/1457 is resolved.
6+
# schedule:
7+
# # The job runs at 9:30 AM UTC every Monday through Friday, which is 3:00 PM IST and 4:30 AM EST.
8+
# # Ref - https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#onschedule
9+
# - cron: '30 9 * * 1-5'
910

1011
jobs:
1112
fetch_all_pull_request_shas:

README.md

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

33
<!-- Make sure to also update the #Requirements section below, and in user-guide.md -->
4-
> Note: Version 24.0.12 requires **IntelliJ IDEA 2024.1.\***, **2024.2.\***, or **2024.3.\*** and a minimum of **Java 17**.
4+
> Note: Version 25.0.9 requires **IntelliJ IDEA 2024.3.\***, **2025.1.\***, or **2025.2.\*** and a minimum of **Java 17**.
55
>
66
> This page provides an overview of Liberty Tools for IntelliJ IDEA.
77
> For minimum requirements information and detailed instructions on how to use Liberty Tools, check the [user-guide](docs/user-guide.md).
@@ -12,7 +12,7 @@
1212

1313
Liberty Tools for IntelliJ IDEA is an IntelliJ IDEA plugin for developing cloud-native Java applications with [Open Liberty](https://openliberty.io/) and [WebSphere Liberty](https://www.ibm.com/products/websphere-liberty). Iterate fast with Liberty dev mode, code with assistance for MicroProfile and Jakarta EE APIs, and easily edit Liberty configuration files.
1414

15-
Liberty Tools for IntelliJ includes [LSP4IJ](https://github.com/redhat-developer/lsp4ij), an external plugin dependency that is automatically installed with Liberty Tools. LSP4IJ is a free and open-source Language Server Protocol (LSP) client developed by Red Hat, enabling seamless language server integration.
15+
Liberty Tools for IntelliJ has an external dependency on [LSP4IJ](https://github.com/redhat-developer/lsp4ij), which is automatically installed from the JetBrains Marketplace when Liberty Tools is installed. LSP4IJ is a free and open-source IntelliJ plugin that enables Language Server Protocol (LSP) support for language server integration in IntelliJ IDEA.
1616

1717
If you wish to change the version of LSP4IJ installed along with Liberty Tools, you can refer to the documentation [here](docs/user-guide.md#manually-install-specific-release-of-the-lsp4ij-plugin-from-the-marketplace).
1818

@@ -106,7 +106,7 @@ If you experience a problem with this plugin you might be asked to collect langu
106106

107107
## Requirements
108108
<!-- Make sure to also update the note at the top of this file, and in user-guide.md -->
109-
Version 24.0.12 requires **IntelliJ IDEA 2024.1.\***, **2024.2.\***, or **2024.3.\*** and a minimum of **Java 17**.
109+
Version 25.0.9 requires **IntelliJ IDEA 2024.3.\***, **2025.1.\***, or **2025.2.\*** and a minimum of **Java 17**.
110110

111111
For more details, check the [user guide](docs/user-guide.md#software-requirements).
112112

build.gradle

Lines changed: 61 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,16 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
33
import org.jetbrains.intellij.platform.gradle.IntelliJPlatformType
44
plugins {
55
id 'java'
6-
id 'org.jetbrains.intellij.platform' version '2.1.0'
6+
id 'org.jetbrains.intellij.platform' version '2.7.2'
77
id 'org.jetbrains.kotlin.jvm' version '2.0.20'
88
}
99

1010
group 'io.openliberty.tools'
11-
version '25.0.1-SNAPSHOT'
11+
version '25.0.9'
1212

1313
def remoteRobotVersion = "0.11.23"
1414
// To switch to nightly version, append "@nightly" to the version number (i.e. 0.4.1-20240828-013108@nightly)
15-
def lsp4ijVersion = '0.12.0'
15+
def lsp4ijVersion = '0.18.0'
1616

1717
allprojects {
1818
sourceCompatibility = javaVersion
@@ -57,6 +57,9 @@ repositories {
5757
maven {
5858
url = "https://cache-redirector.jetbrains.com/download-pgp-verifier"
5959
}
60+
maven {
61+
url = "https://central.sonatype.com/repository/maven-snapshots/"
62+
}
6063
intellijPlatform {
6164
defaultRepositories()
6265
}
@@ -231,6 +234,61 @@ intellijPlatform {
231234
untilBuild = providers.gradleProperty("pluginUntilBuild")
232235
}
233236
changeNotes = """
237+
<h2> 25.0.9 </h2>
238+
<p>Version 25.0.9 of Liberty Tools for IntelliJ IDEA contains enhancements and fixes. Version 25.0.9 requires IntelliJ IDEA version 2024.3.*, 2025.1.*, or 2025.2.* and a minimum of Java 17.</p>
239+
Notable changes:
240+
<ul>
241+
<li> Support for IntelliJ IDEA 2025.2 and its successive fix releases. </li>
242+
<li> Updated the <a href="https://github.com/OpenLiberty/liberty-language-server">Liberty Config Language Server</a> version to 2.3.2, which includes multiple enhancements and bug fixes. For more information regarding changes for version 2.3.2, refer to the release notes:
243+
<ul>
244+
<li> https://github.com/OpenLiberty/liberty-language-server/releases/tag/liberty-langserver-2.3.2 </li>
245+
<li> https://github.com/OpenLiberty/liberty-language-server/releases/tag/lemminx-liberty-2.3.2 </li>
246+
</ul>
247+
</li>
248+
<li> Resolved an exception that occurred when running Liberty actions in IntelliJ 2024.3.x. </li>
249+
<li> Enabled Liberty actions to be run with the new “Reworked 2025” terminal engine. </li>
250+
<li> Resolved a bug where multiple @BeanParams were incorrectly reported as an error in Java files. </li>
251+
<li> Liberty Tools version 25.0.9 has been tested with <a href="https://github.com/redhat-developer/lsp4ij">LSP4IJ</a> versions 0.15.0, 0.16.0, and 0.16.1. </li>
252+
<ul>
253+
<li> For more information regarding tested LSP4IJ versions, refer to the table in <a href="https://github.com/OpenLiberty/liberty-tools-intellij/blob/main/docs/user-guide.md#manually-install-specific-release-of-the-lsp4ij-plugin-from-the-marketplace">this section</a> of the user guide. </li>
254+
</ul>
255+
</li>
256+
See the <a href="https://github.com/OpenLiberty/liberty-tools-intellij/compare/25.0.8...25.0.9">commit log</a> for the full set of changes since the previous release.
257+
<br>
258+
<h2> 25.0.8 </h2>
259+
<p>Version 25.0.8 of Liberty Tools for IntelliJ IDEA contains a workaroud for a bug in the IntelliJ IDEA 2025.1.x fix stream. Version 25.0.8 requires IntelliJ IDEA version 2024.2.*, 2024.3.*, or 2025.1.* and a minimum of Java 17.</p>
260+
<ul>
261+
<li> This release contains a workaround for a NullPointerException that blocks application startup when using Liberty Tools with a fresh installation of IntelliJ IDEA 2025.1.2 or higher in the 2025.1.x fix stream. </li>
262+
<li> Liberty Tools version 25.0.8 has been tested with <a href="https://github.com/redhat-developer/lsp4ij">LSP4IJ</a> version 0.14.2.
263+
<ul>
264+
<li> For more information regarding tested LSP4IJ versions, refer to the table in <a href="https://github.com/OpenLiberty/liberty-tools-intellij/blob/main/docs/user-guide.md#manually-install-specific-release-of-the-lsp4ij-plugin-from-the-marketplace">this section</a> of the user guide.
265+
</ul>
266+
</li>
267+
</ul>
268+
See the <a href="https://github.com/OpenLiberty/liberty-tools-intellij/compare/25.0.5...25.0.8">commit log</a> for the full set of changes since the previous release.
269+
<br>
270+
<h2> 25.0.5 </h2>
271+
<p>Version 25.0.5 of Liberty Tools for IntelliJ IDEA contains enhancements and fixes. Version 25.0.5 requires IntelliJ IDEA version 2024.2.*, 2024.3.*, or 2025.1.* and a minimum of Java 17.</p>
272+
Notable changes:
273+
<ul>
274+
<li> Support for IntelliJ IDEA 2025.1 and its successive fix releases.
275+
<li> Fix to enable the debugger to attach to a Liberty server when using a custom Liberty installation.
276+
<li> Fix for NPE when creating a new Liberty run/debug configuration for a new project without opening the Liberty tool window first.
277+
<li> Fix to enable the “Liberty: Start” action to always run a basic dev mode command with no parameters.
278+
<li> Fix to enable removal of the “Run in container” parameter when the Liberty run/debug config is deleted.
279+
<li> Prepopulate the name for a new Liberty run/debug config.
280+
<li> Updated the <a href="https://github.com/OpenLiberty/liberty-language-server">Liberty Config Language Server</a> version to 2.2.1, which includes multiple enhancements and bug fixes. For more information regarding changes for version 2.2.1, refer to the release notes:
281+
<ul>
282+
<li> https://github.com/OpenLiberty/liberty-language-server/releases/tag/liberty-langserver-2.2.1
283+
<li> https://github.com/OpenLiberty/liberty-language-server/releases/tag/lemminx-liberty-2.2.1
284+
</ul>
285+
<li> Updated the <a href="https://github.com/eclipse/lsp4jakarta">Language Server for Jakarta EE</a> version to 0.2.3. For more information regarding changes for version 0.2.3, refer to the release notes: https://github.com/eclipse-lsp4jakarta/lsp4jakarta/releases/tag/0.2.3
286+
<li> Liberty Tools version 25.0.5 has been tested with <a href="https://github.com/redhat-developer/lsp4ij">LSP4IJ</a> version 0.13.0.
287+
<ul>
288+
<li> For more information regarding tested LSP4IJ versions, refer to the table in <a href="https://github.com/OpenLiberty/liberty-tools-intellij/blob/main/docs/user-guide.md#manually-install-specific-release-of-the-lsp4ij-plugin-from-the-marketplace">this section</a> of the user guide.
289+
</ul>
290+
See the <a href="https://github.com/OpenLiberty/liberty-tools-intellij/compare/24.0.12...25.0.5">commit log</a> for the full set of changes since the previous release.
291+
<br>
234292
<h2> 24.0.12 </h2>
235293
<p>Version 24.0.12 of Liberty Tools for IntelliJ IDEA contains enhancements and fixes. Version 24.0.12 requires IntelliJ IDEA version 2024.1.*, 2024.2.*, or 2024.3.* and a minimum of Java 17.</p>
236294
Notable changes:

docs/user-guide.md

Lines changed: 29 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,10 @@ For information regarding known issues and limitations, refer to our [Common Iss
77
- [Software requirements](#software-requirements)
88
- [Application requirements](#application-requirements)
99
- [Settings](#settings)
10-
- [Manually install specific release of the LSP4IJ plugin from the Marketplace](#manually-install-specific-release-of-the-lsp4ij-plugin-from-the-marketplace)
10+
- [LSP4IJ plugin](#lsp4ij-plugin)
11+
- [LSP4IJ tested versions](#lsp4ij-tested-versions)
12+
- [Manually install specific release of the LSP4IJ plugin from the Marketplace](#manually-install-specific-release-of-the-lsp4ij-plugin-from-the-marketplace)
13+
- [Third party language servers](#third-party-language-servers)
1114
- [Open the Liberty tool window](#open-the-liberty-tool-window)
1215
- [Run your application on Liberty using dev mode](#run-your-application-on-liberty-using-dev-mode)
1316
- [Use the Liberty tool window](#use-the-liberty-tool-window)
@@ -29,7 +32,7 @@ For information regarding known issues and limitations, refer to our [Common Iss
2932
## Before you begin
3033
### Software requirements
3134
<!-- Make sure to also update the main README.md note at its top, and its #Requirements section -->
32-
- Version 24.0.12 requires **IntelliJ IDEA 2024.1.\***, **2024.2.\***, or **2024.3.\***. Liberty Tools for IntelliJ IDEA is compatible with the Community Edition of IntelliJ IDEA.
35+
- Version 25.0.9 requires **IntelliJ IDEA 2024.3.\***, **2025.1.\***, or **2025.2.\*** and a minimum of **Java 17**. Liberty Tools for IntelliJ IDEA is compatible with both IntelliJ IDEA Ultimate and IntelliJ IDEA Community Edition.
3336
- **Java 17** or later. If you change the IntelliJ IDEA Boot Java Runtime through the **Change Boot Java Runtime for the IDE** preference, ensure that you are using Java 17 or later.
3437
- [Liberty Tools for IntelliJ IDEA plugin](https://plugins.jetbrains.com/plugin/14856-liberty-tools/)
3538

@@ -51,17 +54,24 @@ Liberty Tools for IntelliJ IDEA honors the following settings:
5154
#### Environment Variables:
5255
- The **JAVA_HOME** system environment variable in the current terminal is used when you run Liberty dev mode in any project.
5356

54-
## Manually install specific release of the LSP4IJ plugin from the Marketplace
57+
## LSP4IJ plugin
58+
Liberty Tools for IntelliJ has an external dependency on [LSP4IJ](https://github.com/redhat-developer/lsp4ij), which is automatically installed from the JetBrains Marketplace when Liberty Tools is installed. LSP4IJ is a free and open-source IntelliJ plugin that enables Language Server Protocol (LSP) support for language server integration in IntelliJ IDEA.
5559

56-
When installing the Liberty Tools for IntelliJ plugin, the latest version of LSP4IJ from the JetBrains marketplace will be installed by default.
60+
### LSP4IJ tested versions
5761

58-
If you prefer to use an older version of LSP4IJ (e.g., a specific version that was tested with the Liberty Tools release you are using), you can manually downgrade it by installing the desired version as a dependency from the [JetBrains marketplace](https://plugins.jetbrains.com/plugin/23257-lsp4ij/versions).
62+
| Liberty Tools version | LSP4IJ version(s) tested |
63+
|-----------------------|----------------------------------------------|
64+
| 24.0.9 | 0.5.0, 0.6.0, 0.7.0, 0.8.1 |
65+
| 24.0.12 | 0.8.1, 0.9.0, 0.10.0, 0.11.0, 0.12.0, 0.13.0 |
66+
| 25.0.5 | 0.13.0, 0.14.0, 0.14.2 |
67+
| 25.0.8 | 0.14.2, 0.15.0, 0.16.0, 0.16.1 |
68+
| 25.0.9 | 0.15.0, 0.16.0, 0.16.1, 0.17.0, 0.18.0 |
5969

60-
| Liberty Tools version | LSP4IJ version(s) tested |
61-
|-----------------------|--------------------------------------|
62-
| 24.0.9 | 0.5.0, 0.6.0, 0.7.0, 0.8.1 |
63-
| 24.0.12 | 0.8.1, 0.9.0, 0.10.0, 0.11.0, 0.12.0 |
70+
### Manually install specific release of the LSP4IJ plugin from the Marketplace
71+
72+
When installing the Liberty Tools for IntelliJ plugin, the latest version of LSP4IJ from the JetBrains marketplace will be installed by default.
6473

74+
If you prefer to use an older version of LSP4IJ (e.g., a specific version that was tested with the Liberty Tools release you are using), you can manually downgrade it by installing the desired version as a dependency from the [JetBrains marketplace](https://plugins.jetbrains.com/plugin/23257-lsp4ij/versions).
6575

6676
Steps to install an older version of LSP4IJ:
6777
1. Go to the Plugins tab in the IDE Settings and uninstall the latest version.
@@ -75,6 +85,16 @@ Steps to install an older version of LSP4IJ:
7585

7686
5. Confirm by clicking OK, then apply the changes. If prompted, restart your IDE.
7787

88+
### Third party language servers
89+
LSP4IJ includes a built-in installer that may prompt users to install additional third-party language servers. While users are free to explore and install these language servers, Liberty Tools **only supports the following officially bundled language servers**:
90+
91+
- [Liberty Config Language Server](https://github.com/OpenLiberty/liberty-language-server)
92+
- [Liberty LemMinX Language Server](https://github.com/OpenLiberty/liberty-language-server)
93+
- [Eclipse LSP4Jakarta: Language Server for Jakarta EE](https://github.com/eclipse/lsp4jakarta)
94+
- [Eclipse LSP4MP: Language Server for MicroProfile](https://github.com/eclipse/lsp4mp)
95+
96+
Third-party language servers installed via LSP4IJ are **not supported** by Liberty Tools. Any issues or unexpected behaviour resulting from such third-party tools fall outside the scope of Liberty Tools support. **The Liberty Tools team is not responsible for troubleshooting or resolving problems caused by third-party language servers.**
97+
7898
## Open the Liberty tool window
7999
Select **View > Tool Windows > Liberty**.
80100

gradle.properties

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
useLocal=false
2-
pluginSinceBuild=241
3-
pluginUntilBuild=243.*
2+
pluginSinceBuild=243
3+
pluginUntilBuild=252.*
44

5-
javaVersion=17
5+
javaVersion=21
66

77
# Target IntelliJ Community by default
88
platformType=IC
9-
platformVersion=2024.1.7
10-
ideTargetVersion=2024.3
9+
platformVersion=2024.3.6
10+
ideTargetVersion=2025.2.1
1111

1212
# Example: platformBundledPlugins = com.intellij.java
1313
platformBundledPlugins=com.intellij.java, org.jetbrains.idea.maven, com.intellij.gradle, org.jetbrains.plugins.terminal, com.intellij.properties
@@ -16,5 +16,8 @@ platformBundledPlugins=com.intellij.java, org.jetbrains.idea.maven, com.intellij
1616
lsp4JakartaVersion=0.2.3
1717
lsp4mpVersion=0.13.0
1818
lemminxVersion=0.26.1
19-
lclsLemminxVersion=2.2.1
20-
lclsVersion=2.2.1
19+
lclsLemminxVersion=2.4
20+
lclsVersion=2.4
21+
22+
# Increase Gradle memory by setting maximum heap size to 2 GB and minimum to 1 GB to prevent OutOfMemoryError
23+
org.gradle.jvmargs=-Xmx2g -Xms1g -Dfile.encoding=UTF-8

src/main/java/io/openliberty/tools/intellij/LibertyExplorer.java

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -284,10 +284,9 @@ private static void executeAction(Tree tree) {
284284
}
285285
LibertyGeneralAction action = (LibertyGeneralAction) am.getAction(actionId);
286286
if (action != null) {
287-
action.actionPerformed(new AnActionEvent(null,
288-
DataManager.getInstance().getDataContext(tree),
289-
ActionPlaces.UNKNOWN, new Presentation(),
290-
am, 0));
287+
action.actionPerformed(new AnActionEvent(DataManager.getInstance().getDataContext(tree),
288+
new Presentation(), ActionPlaces.UNKNOWN, ActionUiKind.NONE, null,
289+
0, am));
291290
}
292291
}
293292
}

src/main/java/io/openliberty/tools/intellij/LibertyPluginIcons.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,6 @@ public interface LibertyPluginIcons {
1717
Icon IntelliJGear = IconLoader.getIcon("AllIcons.General.GearPlain", LibertyPluginIcons.class);
1818
Icon libertyIcon = IconLoader.getIcon("/icons/OL_logo_13.svg", LibertyPluginIcons.class);
1919
Icon libertyIcon_40 = IconLoader.getIcon("/icons/OL_logo_40.svg", LibertyPluginIcons.class);
20-
Icon gradleIcon = IconLoader.getIcon("icons/gradle-tag-1.png", LibertyPluginIcons.class);
20+
Icon gradleIcon = IconLoader.getIcon("/icons/gradle-tag-1.png", LibertyPluginIcons.class);
2121
Icon mavenIcon = IconLoader.getIcon("/icons/maven-tag.png", LibertyPluginIcons.class);
2222
}

src/main/java/io/openliberty/tools/intellij/actions/RunLibertyDevTask.java

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,7 @@
1010
package io.openliberty.tools.intellij.actions;
1111

1212
import com.intellij.ide.DataManager;
13-
import com.intellij.openapi.actionSystem.ActionManager;
14-
import com.intellij.openapi.actionSystem.ActionUpdateThread;
15-
import com.intellij.openapi.actionSystem.AnAction;
16-
import com.intellij.openapi.actionSystem.AnActionEvent;
13+
import com.intellij.openapi.actionSystem.*;
1714
import com.intellij.openapi.diagnostic.Logger;
1815
import com.intellij.openapi.project.Project;
1916
import com.intellij.openapi.wm.ToolWindow;
@@ -84,7 +81,7 @@ private void handleLibertyTreeEvent(@NotNull AnActionEvent e, Project project, b
8481
} else {
8582
// calls selected action
8683
AnAction action = ActionManager.getInstance().getAction(Constants.FULL_ACTIONS_MAP.get(lastPathComponent));
87-
action.actionPerformed(new AnActionEvent(null, DataManager.getInstance().getDataContext(libertyTree), e.getPlace(), e.getPresentation(), ActionManager.getInstance(), 0));
84+
action.actionPerformed(new AnActionEvent(DataManager.getInstance().getDataContext(libertyTree), e.getPresentation(), e.getPlace(), ActionUiKind.NONE, null, 0, ActionManager.getInstance()));
8885
}
8986
}
9087
}
@@ -120,7 +117,7 @@ public void actionPerformed(@NotNull AnActionEvent e) {
120117
String selectedAction = libertyActions[ret];
121118
// run selected action
122119
AnAction action = ActionManager.getInstance().getAction(Constants.FULL_ACTIONS_MAP.get(selectedAction));
123-
action.actionPerformed(new AnActionEvent(null, e.getDataContext(), e.getPlace(), e.getPresentation(), ActionManager.getInstance(), 0));
120+
action.actionPerformed(new AnActionEvent(e.getDataContext(), e.getPresentation(), e.getPlace(), ActionUiKind.NONE, null, 0, ActionManager.getInstance()));
124121
}
125122
} else {
126123
handleLibertyTreeEvent(e, project, false);

0 commit comments

Comments
 (0)