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/StaticServlet.java b/lang/java/ipc-jetty/src/main/java/org/apache/avro/ipc/jetty/StaticServlet.java
index 2e28ba14eba..269548c7926 100644
--- a/lang/java/ipc-jetty/src/main/java/org/apache/avro/ipc/jetty/StaticServlet.java
+++ b/lang/java/ipc-jetty/src/main/java/org/apache/avro/ipc/jetty/StaticServlet.java
@@ -20,8 +20,9 @@
import java.net.URL;
-import org.eclipse.jetty.servlet.DefaultServlet;
+import org.eclipse.jetty.ee9.servlet.DefaultServlet;
import org.eclipse.jetty.util.resource.Resource;
+import org.eclipse.jetty.util.resource.URLResourceFactory;
/**
* Very simple servlet class capable of serving static files.
@@ -30,16 +31,16 @@ public class StaticServlet extends DefaultServlet {
private static final long serialVersionUID = 1L;
@Override
- public Resource getResource(String pathInContext) {
+ protected Resource resolve(String subUriPath) {
// Take only last slice of the URL as a filename, so we can adjust path.
// This also prevents mischief like '../../foo.css'
- String[] parts = pathInContext.split("/");
+ String[] parts = subUriPath.split("/");
String filename = parts[parts.length - 1];
URL resource = getClass().getClassLoader().getResource("org/apache/avro/ipc/stats/static/" + filename);
if (resource == null) {
return null;
}
- return Resource.newResource(resource);
+ return new URLResourceFactory().newResource(resource);
}
}
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 43e066190d7..ecd39308855 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
@@ -20,8 +20,8 @@
* limitations under the License.
*/
import org.eclipse.jetty.server.Server;
-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;
/* This is a server that displays live information from a StatsPlugin.
*
@@ -42,11 +42,11 @@ public StatsServer(StatsPlugin plugin, int port) throws Exception {
this.httpServer = new Server(port);
this.plugin = plugin;
- ServletHandler handler = new ServletHandler();
- httpServer.setHandler(handler);
- handler.addServletWithMapping(new ServletHolder(new StaticServlet()), "/");
+ ServletContextHandler sch = new ServletContextHandler();
+ httpServer.setHandler(sch);
+ sch.getServletHandler().addServletWithMapping(new ServletHolder(new StaticServlet()), "/");
- handler.addServletWithMapping(new ServletHolder(new StatsServlet(plugin)), "/");
+ sch.getServletHandler().addServletWithMapping(new ServletHolder(new StatsServlet(plugin)), "/");
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