Skip to content

Commit 0948449

Browse files
committed
[ZEPPELIN-6158] Update Jetty and other libraries to use Jakarta
### What is this PR for? This PR updates Jetty and some subcomponents such as Jackson, Jersey, Micrometer, Kubernetes client. In my opinion, it is not possible to split the pull request due to the annotation change. ### What type of PR is it? - Improvement ### What is the Jira issue? * https://issues.apache.org/jira/browse/ZEPPELIN-6158 ### How should this be tested? * CI * [x] - Manually ### Questions: * Does the license files need to update? Yes * Is there breaking changes for older versions? Yes * Does this needs documentation? No Closes #4902 from Reamer/jakarta. Signed-off-by: Philipp Dallig <[email protected]> (cherry picked from commit e928edb) Signed-off-by: Philipp Dallig <[email protected]>
1 parent 0234fb3 commit 0948449

File tree

81 files changed

+438
-381
lines changed

Some content is hidden

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

81 files changed

+438
-381
lines changed

pom.xml

Lines changed: 10 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -121,10 +121,9 @@
121121
<gson.version>2.8.9</gson.version>
122122
<gson-extras.version>0.2.2</gson-extras.version>
123123
<org-json.version>20240205</org-json.version>
124-
<jackson.version>2.12.7.20240502</jackson.version>
125-
<jetty.version>9.4.52.v20230823</jetty.version>
126-
<jakarta.activation.version>1.2.2</jakarta.activation.version>
127-
<jakarta.xml.bind.version>2.3.3</jakarta.xml.bind.version>
124+
<jackson.version>2.18.3</jackson.version>
125+
<jetty.version>11.0.24</jetty.version>
126+
<jakarta.inject.version>2.0.1</jakarta.inject.version>
128127
<httpcomponents.core.version>4.4.1</httpcomponents.core.version>
129128
<httpcomponents.client.version>4.5.13</httpcomponents.client.version>
130129
<httpcomponents.asyncclient.version>4.0.2</httpcomponents.asyncclient.version>
@@ -140,8 +139,8 @@
140139
<shiro.version>1.13.0</shiro.version>
141140
<bouncycastle.version>1.80</bouncycastle.version>
142141
<maven.version>3.6.3</maven.version>
143-
<dropwizard.version>4.1.14</dropwizard.version>
144-
<micrometer.version>1.6.0</micrometer.version>
142+
<dropwizard.version>4.2.29</dropwizard.version>
143+
<micrometer.version>1.14.2</micrometer.version>
145144
<findbugs.jsr305.version>3.0.2</findbugs.jsr305.version>
146145

147146
<hadoop.version>3.3.6</hadoop.version>
@@ -327,15 +326,9 @@
327326
</dependency>
328327

329328
<dependency>
330-
<groupId>jakarta.activation</groupId>
331-
<artifactId>jakarta.activation-api</artifactId>
332-
<version>${jakarta.activation.version}</version>
333-
</dependency>
334-
335-
<dependency>
336-
<groupId>jakarta.xml.bind</groupId>
337-
<artifactId>jakarta.xml.bind-api</artifactId>
338-
<version>${jakarta.xml.bind.version}</version>
329+
<groupId>jakarta.inject</groupId>
330+
<artifactId>jakarta.inject-api</artifactId>
331+
<version>${jakarta.inject.version}</version>
339332
</dependency>
340333

341334
<dependency>
@@ -380,11 +373,13 @@
380373
<groupId>org.apache.shiro</groupId>
381374
<artifactId>shiro-core</artifactId>
382375
<version>${shiro.version}</version>
376+
<classifier>jakarta</classifier>
383377
</dependency>
384378
<dependency>
385379
<groupId>org.apache.shiro</groupId>
386380
<artifactId>shiro-web</artifactId>
387381
<version>${shiro.version}</version>
382+
<classifier>jakarta</classifier>
388383
</dependency>
389384
<dependency>
390385
<groupId>org.apache.shiro</groupId>

shell/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@
7171
</dependency>
7272
<dependency>
7373
<groupId>org.eclipse.jetty.websocket</groupId>
74-
<artifactId>javax-websocket-server-impl</artifactId>
74+
<artifactId>websocket-jakarta-server</artifactId>
7575
<version>${jetty.version}</version>
7676
</dependency>
7777
<dependency>

shell/src/main/java/org/apache/zeppelin/shell/terminal/TerminalThread.java

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,7 @@
1717

1818
package org.apache.zeppelin.shell.terminal;
1919

20-
import javax.websocket.server.ServerContainer;
21-
import javax.websocket.server.ServerEndpointConfig;
20+
import jakarta.websocket.server.ServerEndpointConfig;
2221

2322
import org.apache.zeppelin.shell.terminal.websocket.TerminalSessionConfigurator;
2423
import org.apache.zeppelin.shell.terminal.websocket.TerminalSocket;
@@ -27,7 +26,8 @@
2726
import org.eclipse.jetty.server.handler.HandlerCollection;
2827
import org.eclipse.jetty.server.handler.ResourceHandler;
2928
import org.eclipse.jetty.servlet.ServletContextHandler;
30-
import org.eclipse.jetty.websocket.jsr356.server.deploy.WebSocketServerContainerInitializer;
29+
30+
import org.eclipse.jetty.websocket.jakarta.server.config.JakartaWebSocketServletContainerInitializer;
3131
import org.slf4j.Logger;
3232
import org.slf4j.LoggerFactory;
3333

@@ -47,6 +47,7 @@ public TerminalThread(int port, String allwedOrigin) {
4747
this.allwedOrigin = allwedOrigin;
4848
}
4949

50+
@Override
5051
public void run() {
5152
ServerConnector connector = new ServerConnector(jettyServer);
5253
connector.setPort(port);
@@ -75,11 +76,12 @@ public void run() {
7576
jettyServer.setHandler(handlers);
7677

7778
try {
78-
ServerContainer container = WebSocketServerContainerInitializer.configureContext(context);
79-
container.addEndpoint(
80-
ServerEndpointConfig.Builder.create(TerminalSocket.class, "/")
81-
.configurator(new TerminalSessionConfigurator(allwedOrigin))
82-
.build());
79+
JakartaWebSocketServletContainerInitializer.configure(context,
80+
(servletContext, container) ->
81+
container.addEndpoint(
82+
ServerEndpointConfig.Builder.create(TerminalSocket.class, "/")
83+
.configurator(new TerminalSessionConfigurator(allwedOrigin))
84+
.build()));
8385
jettyServer.start();
8486
jettyServer.join();
8587
} catch (Exception e) {

shell/src/main/java/org/apache/zeppelin/shell/terminal/service/TerminalService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
import org.slf4j.Logger;
2626
import org.slf4j.LoggerFactory;
2727

28-
import javax.websocket.Session;
28+
import jakarta.websocket.Session;
2929
import java.io.BufferedReader;
3030
import java.io.BufferedWriter;
3131
import java.io.IOException;

shell/src/main/java/org/apache/zeppelin/shell/terminal/websocket/TerminalSessionConfigurator.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,11 @@
1717

1818
package org.apache.zeppelin.shell.terminal.websocket;
1919

20-
import javax.websocket.server.ServerEndpointConfig.Configurator;
20+
import jakarta.websocket.server.ServerEndpointConfig.Configurator;
2121
import org.slf4j.Logger;
2222
import org.slf4j.LoggerFactory;
2323

24-
public class TerminalSessionConfigurator extends Configurator {
24+
public class TerminalSessionConfigurator extends Configurator {
2525
private static final Logger LOGGER = LoggerFactory.getLogger(TerminalSessionConfigurator.class);
2626
private String allowedOrigin;
2727

@@ -32,8 +32,8 @@ public TerminalSessionConfigurator(String allowedOrigin) {
3232
@Override
3333
public boolean checkOrigin(String originHeaderValue) {
3434
boolean allowed = allowedOrigin.equals(originHeaderValue);
35-
LOGGER.info("Checking origin for TerminalSessionConfigurator: " +
36-
originHeaderValue + " allowed: " + allowed);
35+
LOGGER.info("Checking origin for TerminalSessionConfigurator: {} allowed: {}",
36+
originHeaderValue, allowed);
3737
return allowed;
3838
}
3939
}

shell/src/main/java/org/apache/zeppelin/shell/terminal/websocket/TerminalSocket.java

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,14 @@
2424
import org.slf4j.Logger;
2525
import org.slf4j.LoggerFactory;
2626

27-
import javax.websocket.ClientEndpoint;
28-
import javax.websocket.CloseReason;
29-
import javax.websocket.OnClose;
30-
import javax.websocket.OnError;
31-
import javax.websocket.OnMessage;
32-
import javax.websocket.OnOpen;
33-
import javax.websocket.Session;
34-
import javax.websocket.server.ServerEndpoint;
27+
import jakarta.websocket.ClientEndpoint;
28+
import jakarta.websocket.CloseReason;
29+
import jakarta.websocket.OnClose;
30+
import jakarta.websocket.OnError;
31+
import jakarta.websocket.OnMessage;
32+
import jakarta.websocket.OnOpen;
33+
import jakarta.websocket.Session;
34+
import jakarta.websocket.server.ServerEndpoint;
3535
import java.util.Map;
3636

3737
@ClientEndpoint
@@ -41,22 +41,23 @@ public class TerminalSocket {
4141
private TerminalService terminalService;
4242
private TerminalManager terminalManager = TerminalManager.getInstance();
4343

44-
private String noteId, paragraphId;
44+
private String noteId;
45+
private String paragraphId;
4546

4647
public TerminalSocket() {
4748
terminalService = terminalManager.addTerminalService(this);
4849
}
4950

5051
@OnOpen
5152
public void onWebSocketConnect(Session sess) {
52-
LOGGER.info("Socket Connected: " + sess);
53+
LOGGER.info("Socket Connected: {}", sess);
5354
terminalService.onWebSocketConnect(sess);
5455
}
5556

5657
@OnMessage
5758
public void onWebSocketText(String message) {
5859
if (LOGGER.isDebugEnabled()) {
59-
LOGGER.debug("Received TEXT message: " + message);
60+
LOGGER.debug("Received TEXT message: {}", message);
6061
}
6162

6263
Map<String, String> messageMap = getMessageMap(message);
@@ -77,14 +78,14 @@ public void onWebSocketText(String message) {
7778
terminalService.onTerminalResize(messageMap.get("columns"), messageMap.get("rows"));
7879
break;
7980
default:
80-
LOGGER.error("Unrecodnized action: " + message);
81+
LOGGER.error("Unrecodnized action: {}", message);
8182
}
8283
}
8384
}
8485

8586
@OnClose
8687
public void onWebSocketClose(CloseReason reason) {
87-
LOGGER.info("Socket Closed: " + reason);
88+
LOGGER.info("Socket Closed: {}", reason);
8889

8990
terminalManager.onWebSocketClose(this, noteId, paragraphId);
9091
}

shell/src/test/java/org/apache/zeppelin/shell/TerminalInterpreterTest.java

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@
2020
import java.util.Arrays;
2121
import java.util.List;
2222
import java.util.Map;
23-
import javax.websocket.ClientEndpointConfig;
24-
import javax.websocket.ClientEndpointConfig.Builder;
25-
import javax.websocket.ClientEndpointConfig.Configurator;
23+
import jakarta.websocket.ClientEndpointConfig;
24+
import jakarta.websocket.ClientEndpointConfig.Builder;
25+
import jakarta.websocket.ClientEndpointConfig.Configurator;
2626
import org.apache.zeppelin.interpreter.InterpreterContext;
2727
import org.apache.zeppelin.interpreter.InterpreterException;
2828
import org.apache.zeppelin.interpreter.InterpreterResult;
@@ -34,10 +34,10 @@
3434
import org.slf4j.Logger;
3535
import org.slf4j.LoggerFactory;
3636

37-
import javax.websocket.ContainerProvider;
38-
import javax.websocket.DeploymentException;
39-
import javax.websocket.Session;
40-
import javax.websocket.WebSocketContainer;
37+
import jakarta.websocket.ContainerProvider;
38+
import jakarta.websocket.DeploymentException;
39+
import jakarta.websocket.Session;
40+
import jakarta.websocket.WebSocketContainer;
4141

4242
import static org.junit.jupiter.api.Assertions.assertEquals;
4343
import static org.junit.jupiter.api.Assertions.assertNull;
@@ -347,7 +347,7 @@ void testInvalidOrigin() {
347347
}
348348

349349
assertTrue(exception instanceof IOException);
350-
assertEquals("Connect failure", exception.getMessage());
350+
assertTrue(exception.getMessage().contains("403 Forbidden"));
351351
}
352352

353353
private static ClientEndpointConfig getOriginRequestHeaderConfig(String origin) {

shell/src/test/java/org/apache/zeppelin/shell/terminal/TerminalSocketTest.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,23 +19,23 @@
1919

2020
import java.util.ArrayList;
2121
import java.util.List;
22-
import javax.websocket.CloseReason;
23-
import javax.websocket.Endpoint;
24-
import javax.websocket.EndpointConfig;
25-
import javax.websocket.Session;
22+
import jakarta.websocket.CloseReason;
23+
import jakarta.websocket.Endpoint;
24+
import jakarta.websocket.EndpointConfig;
25+
import jakarta.websocket.Session;
2626
import org.slf4j.Logger;
2727
import org.slf4j.LoggerFactory;
2828

2929
public class TerminalSocketTest extends Endpoint {
3030
private static final Logger LOGGER = LoggerFactory.getLogger(TerminalSocketTest.class);
3131

32-
public static final List<String> ReceivedMsg = new ArrayList();
32+
public static final List<String> ReceivedMsg = new ArrayList<>();
3333

3434
@Override
3535
public void onOpen(Session session, EndpointConfig endpointConfig) {
3636
LOGGER.info("Socket Connected: " + session);
3737

38-
session.addMessageHandler(new javax.websocket.MessageHandler.Whole<String>() {
38+
session.addMessageHandler(new jakarta.websocket.MessageHandler.Whole<String>() {
3939
@Override
4040
public void onMessage(String message) {
4141
LOGGER.info("Received TEXT message: " + message);

zeppelin-client/pom.xml

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

4949
<dependency>
5050
<groupId>org.eclipse.jetty.websocket</groupId>
51-
<artifactId>websocket-client</artifactId>
51+
<artifactId>websocket-jetty-client</artifactId>
5252
<version>${jetty.version}</version>
5353
</dependency>
5454

0 commit comments

Comments
 (0)