org.eclipse.jetty
diff --git a/lang/java/ipc-jetty/src/main/java/org/apache/avro/ipc/jetty/HttpServer.java b/lang/java/ipc-jetty/src/main/java/org/apache/avro/ipc/jetty/HttpServer.java
index 7fe71e16ba8..37a6950898a 100644
--- a/lang/java/ipc-jetty/src/main/java/org/apache/avro/ipc/jetty/HttpServer.java
+++ b/lang/java/ipc-jetty/src/main/java/org/apache/avro/ipc/jetty/HttpServer.java
@@ -31,9 +31,8 @@
import org.eclipse.jetty.server.HttpConfiguration;
import org.eclipse.jetty.server.HttpConnectionFactory;
import org.eclipse.jetty.server.ServerConnector;
-import org.eclipse.jetty.servlet.ServletContextHandler;
-import org.eclipse.jetty.servlet.ServletHandler;
-import org.eclipse.jetty.servlet.ServletHolder;
+import org.eclipse.jetty.ee9.servlet.ServletContextHandler;
+import org.eclipse.jetty.ee9.servlet.ServletHolder;
/** An HTTP-based RPC {@link Server}. */
public class HttpServer implements Server {
@@ -71,10 +70,8 @@ public HttpServer(ResponderServlet servlet, String bindAddress, int port) throws
connector.setPort(port);
server.addConnector(connector);
- ServletHandler handler = new ServletHandler();
- handler.addServletWithMapping(new ServletHolder(servlet), "/*");
ServletContextHandler sch = new ServletContextHandler();
- sch.setServletHandler(handler);
+ sch.getServletHandler().addServletWithMapping(new ServletHolder(servlet), "/*");
server.setHandler(sch);
}
@@ -103,9 +100,9 @@ public HttpServer(ResponderServlet servlet, ConnectionFactory connectionFactory,
connector.setPort(port);
server.addConnector(connector);
- ServletHandler handler = new ServletHandler();
- server.setHandler(handler);
- handler.addServletWithMapping(new ServletHolder(servlet), "/*");
+ ServletContextHandler sch = new ServletContextHandler();
+ server.setHandler(sch);
+ sch.getServletHandler().addServletWithMapping(new ServletHolder(servlet), "/*");
}
/**
@@ -119,9 +116,9 @@ public HttpServer(ResponderServlet servlet, Connector connector) throws IOExcept
if (server.getConnectors().length == 0 || Arrays.asList(server.getConnectors()).contains(connector)) {
server.addConnector(connector);
}
- ServletHandler handler = new ServletHandler();
- server.setHandler(handler);
- handler.addServletWithMapping(new ServletHolder(servlet), "/*");
+ ServletContextHandler sch = new ServletContextHandler();
+ server.setHandler(sch);
+ sch.getServletHandler().addServletWithMapping(new ServletHolder(servlet), "/*");
}
/**
@@ -154,7 +151,7 @@ public void close() {
/**
* Start the server.
- *
+ *
* @throws AvroRuntimeException if the underlying Jetty server throws any
* exception while starting.
*/
diff --git a/lang/java/ipc-jetty/src/main/java/org/apache/avro/ipc/jetty/StatsServer.java b/lang/java/ipc-jetty/src/main/java/org/apache/avro/ipc/jetty/StatsServer.java
index ea83dd1ac69..9b3767cdef7 100644
--- a/lang/java/ipc-jetty/src/main/java/org/apache/avro/ipc/jetty/StatsServer.java
+++ b/lang/java/ipc-jetty/src/main/java/org/apache/avro/ipc/jetty/StatsServer.java
@@ -21,13 +21,14 @@
import org.apache.avro.ipc.stats.StatsPlugin;
import org.apache.avro.ipc.stats.StatsServlet;
+import org.eclipse.jetty.ee9.servlet.ServletContextHandler;
+import org.eclipse.jetty.ee9.servlet.ServletHolder;
+import org.eclipse.jetty.server.Handler;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.handler.ContextHandler;
-import org.eclipse.jetty.server.handler.HandlerList;
import org.eclipse.jetty.server.handler.ResourceHandler;
-import org.eclipse.jetty.servlet.ServletContextHandler;
-import org.eclipse.jetty.servlet.ServletHolder;
import org.eclipse.jetty.util.resource.Resource;
+import org.eclipse.jetty.util.resource.ResourceFactory;
/* This is a server that displays live information from a StatsPlugin.
*
@@ -54,21 +55,24 @@ public StatsServer(StatsPlugin plugin, int port) throws Exception {
ServletHolder servletHolder = new ServletHolder(new StatsServlet(plugin));
servletContext.addServlet(servletHolder, "/");
- HandlerList handlers = new HandlerList(servletContext);
+ Handler.Sequence handlers = new Handler.Sequence();
- Resource classPathResource = Resource.newClassPathResource("/org/apache/avro/ipc/stats/static");
- if (classPathResource.exists() && classPathResource.isDirectory()) {
+ ResourceFactory resourceFactory = ResourceFactory.of(httpServer);
+ Resource classPathResource = resourceFactory.newResource("/org/apache/avro/ipc/stats/static");
+ if (classPathResource != null && classPathResource.exists() && classPathResource.isDirectory()) {
ResourceHandler resourceHandler = new ResourceHandler();
resourceHandler.setBaseResource(classPathResource);
- resourceHandler.setDirectoriesListed(false); // Optional: prevent directory listing
+ resourceHandler.setDirAllowed(false); // Optional: prevent directory listing
ContextHandler staticContext = new ContextHandler();
staticContext.setContextPath("/static");
staticContext.setHandler(resourceHandler);
- handlers.prependHandler(staticContext);
+ handlers.addHandler(staticContext);
}
+ handlers.addHandler(servletContext);
+
httpServer.setHandler(handlers);
httpServer.start();
diff --git a/lang/java/ipc-jetty/src/test/java/org/apache/avro/ipc/jetty/TestProtocolHttps.java b/lang/java/ipc-jetty/src/test/java/org/apache/avro/ipc/jetty/TestProtocolHttps.java
index 57aae423c26..78c8a68c3e8 100644
--- a/lang/java/ipc-jetty/src/test/java/org/apache/avro/ipc/jetty/TestProtocolHttps.java
+++ b/lang/java/ipc-jetty/src/test/java/org/apache/avro/ipc/jetty/TestProtocolHttps.java
@@ -37,7 +37,7 @@ public Server createServer(Responder testResponder) throws Exception {
System.setProperty("javax.net.ssl.trustStore", "src/test/truststore");
System.setProperty("javax.net.ssl.trustStorePassword", "avrotest");
SslConnectionFactory connectionFactory = new SslConnectionFactory("HTTP/1.1");
- SslContextFactory sslContextFactory = connectionFactory.getSslContextFactory();
+ SslContextFactory.Server sslContextFactory = connectionFactory.getSslContextFactory();
sslContextFactory.setKeyStorePath(System.getProperty("javax.net.ssl.keyStore"));
sslContextFactory.setKeyManagerPassword(System.getProperty("javax.net.ssl.password"));
diff --git a/lang/java/ipc-jetty/src/test/java/org/apache/avro/ipc/jetty/TestStatsPluginAndServlet.java b/lang/java/ipc-jetty/src/test/java/org/apache/avro/ipc/jetty/TestStatsPluginAndServlet.java
index 33563f96dce..e9f7a90f5ee 100644
--- a/lang/java/ipc-jetty/src/test/java/org/apache/avro/ipc/jetty/TestStatsPluginAndServlet.java
+++ b/lang/java/ipc-jetty/src/test/java/org/apache/avro/ipc/jetty/TestStatsPluginAndServlet.java
@@ -26,7 +26,7 @@
import java.nio.ByteBuffer;
import java.util.Random;
-import javax.servlet.UnavailableException;
+import jakarta.servlet.UnavailableException;
import org.apache.avro.AvroRemoteException;
import org.apache.avro.Protocol;
@@ -164,11 +164,11 @@ public Object respond(Message message, Object request) throws AvroRemoteExceptio
/**
* Demo program for using RPC stats. This automatically generates client RPC
* requests. Alternatively a can be used (as below) to trigger RPCs.
- *
+ *
*
* java -jar build/avro-tools-*.jar rpcsend '{"protocol":"sleepy","namespace":null,"types":[],"messages":{"sleep":{"request":[{"name":"millis","type":"long"}],"response":"null"}}}' sleep localhost 7002 '{"millis": 20000}'
*
- *
+ *
* @param args
* @throws Exception
*/
diff --git a/lang/java/ipc/pom.xml b/lang/java/ipc/pom.xml
index 6f5fb359df9..1937e327855 100644
--- a/lang/java/ipc/pom.xml
+++ b/lang/java/ipc/pom.xml
@@ -169,8 +169,8 @@
velocity-engine-core