eclipse-lsp4j / lsp4j

A Java implementation of the language server protocol intended to be consumed by tools and language servers implemented in Java.
https://eclipse.org/lsp4j
Other
582 stars 141 forks source link

Incorrect dependency in pom.xml for jakarta websocket #786

Closed jonahgraham closed 5 months ago

jonahgraham commented 6 months ago

I think this line in the dependencies is incorrect, but may be simply overly broad.

The websocket seems to use jakarta.websocket-client-api provided packages, and that is what is resolved when using p2 resolver.

https://github.com/eclipse-lsp4j/lsp4j/blob/dc3403f1148ffd5725692af0791e78e5fa448028/org.eclipse.lsp4j.websocket.jakarta/build.gradle#L18

Does this cause any harm?

jonahgraham commented 5 months ago

We may be depending on slightly too much, but I don't really know how to test if there are unintended consequences. This is the diff I would apply:

diff --git a/org.eclipse.lsp4j.websocket.jakarta/build.gradle b/org.eclipse.lsp4j.websocket.jakarta/build.gradle
index b3a6f34..2384b02 100644
--- a/org.eclipse.lsp4j.websocket.jakarta/build.gradle
+++ b/org.eclipse.lsp4j.websocket.jakarta/build.gradle
@@ -15,7 +15,7 @@ description = 'Jakarta WebSocket support for LSP4J'

 dependencies {
        api project(":org.eclipse.lsp4j.jsonrpc")
-       api "jakarta.websocket:jakarta.websocket-api:$versions.websocket_jakarta"
+       api "jakarta.websocket:jakarta.websocket-client-api:$versions.websocket_jakarta"
        testImplementation "junit:junit:$versions.junit"
 }

which changes the generated pom.xml dependencies from:

<dependency>
  <groupId>jakarta.websocket</groupId>
  <artifactId>jakarta.websocket-api</artifactId>
  <version>2.0.0</version>
  <scope>compile</scope>
</dependency>

to

<dependency>
  <groupId>jakarta.websocket</groupId>
  <artifactId>jakarta.websocket-client-api</artifactId>
  <version>2.0.0</version>
  <scope>compile</scope>
</dependency>