diff --git a/compliance/repository/src/test/java/org/eclipse/rdf4j/repository/http/HTTPMemServer.java b/compliance/repository/src/test/java/org/eclipse/rdf4j/repository/http/HTTPMemServer.java
index d2ad518ff20..d0e89e8a08a 100644
--- a/compliance/repository/src/test/java/org/eclipse/rdf4j/repository/http/HTTPMemServer.java
+++ b/compliance/repository/src/test/java/org/eclipse/rdf4j/repository/http/HTTPMemServer.java
@@ -16,6 +16,7 @@
import java.util.Properties;
import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.webapp.ClassMatcher;
import org.eclipse.jetty.webapp.WebAppContext;
import org.eclipse.rdf4j.http.protocol.Protocol;
import org.eclipse.rdf4j.repository.RepositoryException;
@@ -66,7 +67,7 @@ public HTTPMemServer() throws IOException {
WebAppContext webapp = new WebAppContext();
webapp.setContextPath(RDF4J_CONTEXT);
webapp.setWar(webappDir);
- webapp.getServerClasspathPattern().add("org.slf4j.", "ch.qos.logback.");
+ webapp.addServerClassMatcher(new ClassMatcher("org.slf4j.", "ch.qos.logback."));
jetty.setHandler(webapp);
manager = RemoteRepositoryManager.getInstance(SERVER_URL);
diff --git a/compliance/solr/pom.xml b/compliance/solr/pom.xml
index 2abe270f6ea..825ca149e97 100644
--- a/compliance/solr/pom.xml
+++ b/compliance/solr/pom.xml
@@ -10,6 +10,10 @@
RDF4J: Solr Sail Tests
Tests for Solr Sail.
+
+ 9.4.50.v20221201
+
+ false
${project.basedir}/solr
@@ -62,6 +66,11 @@
${solr.version}
test
+
+
org.apache.logging.log4j
*
diff --git a/compliance/sparql/src/test/java/org/eclipse/rdf4j/query/parser/sparql/SPARQLEmbeddedServer.java b/compliance/sparql/src/test/java/org/eclipse/rdf4j/query/parser/sparql/SPARQLEmbeddedServer.java
index 54e304b54af..58c73c0d539 100644
--- a/compliance/sparql/src/test/java/org/eclipse/rdf4j/query/parser/sparql/SPARQLEmbeddedServer.java
+++ b/compliance/sparql/src/test/java/org/eclipse/rdf4j/query/parser/sparql/SPARQLEmbeddedServer.java
@@ -17,6 +17,7 @@
import java.util.Properties;
import org.eclipse.jetty.server.Server;
+import org.eclipse.jetty.webapp.ClassMatcher;
import org.eclipse.jetty.webapp.WebAppContext;
import org.eclipse.rdf4j.http.protocol.Protocol;
import org.eclipse.rdf4j.repository.RepositoryException;
@@ -64,7 +65,7 @@ public SPARQLEmbeddedServer(List repositoryIds) throws IOException {
jetty = new Server(PORT);
WebAppContext webapp = new WebAppContext();
- webapp.getServerClasspathPattern().add("org.slf4j.", "ch.qos.logback.");
+ webapp.addServerClassMatcher(new ClassMatcher("org.slf4j.", "ch.qos.logback."));
webapp.setContextPath(SERVER_CONTEXT);
// warPath configured in pom.xml maven-war-plugin configuration
webapp.setWar(webappDir);
diff --git a/core/sail/solr/pom.xml b/core/sail/solr/pom.xml
index 388516095cc..9b6106f6852 100644
--- a/core/sail/solr/pom.xml
+++ b/core/sail/solr/pom.xml
@@ -37,6 +37,10 @@
${solr.version}
true
+
+ javax.servlet
+ javax.servlet-api
+
org.apache.logging.log4j
*
diff --git a/pom.xml b/pom.xml
index ba8e63c7be5..9c7f02844e4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -361,6 +361,11 @@
UTF-8
UTF-8
true
+ true
+ 8.0.0
+
+ 2.3.3
+ 10.0.15
1.7.36
1.2.11
2.17.2
@@ -377,12 +382,23 @@
5.3.23
30.1.1-jre
1.35
- 3.1.0
5.8.2
- 9.4.50.v20221201
+
+ jakarta.platform
+ jakarta.jakartaee-bom
+ ${jakartaee.version}
+ pom
+ import
+
+
+
+ jakarta.xml.bind
+ jakarta.xml.bind-api
+ ${jaxb.version}
+
com.fasterxml.jackson
@@ -947,6 +963,22 @@
true
+
+ enforce-banned-dependencies
+
+ enforce
+
+
+
+
+
+ javax.*
+
+
+
+ ${enforce-no-javax-dependencies.fail}
+
+
enforce-logging-dependencies
diff --git a/site/content/documentation/tools/server-workbench.md b/site/content/documentation/tools/server-workbench.md
index bfa4019c548..a4eb8a3cfe8 100644
--- a/site/content/documentation/tools/server-workbench.md
+++ b/site/content/documentation/tools/server-workbench.md
@@ -12,8 +12,8 @@ In this chapter, we explain how you can install RDF4J Server (the actual databas
RDF4J Server and RDF4J Workbench requires the following software:
-- Java 8 Runtime Environment (either [OpenJDK](https://openjdk.java.net/) or [Oracle Java](https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html))
-- A Java Servlet Container that supports Java Servlet API 3.1 and Java Server Pages (JSP) 2.2, or newer.
+- Java 11 Runtime Environment (either [OpenJDK](https://openjdk.java.net/) or [Oracle Java](https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html))
+- A Java Servlet Container that supports Java Servlet API 4.0 and Java Server Pages (JSP) 2.3, or newer.
We recommend using a recent, stable version of [Apache Tomcat](https://tomcat.apache.org/) ([version 9.0](https://tomcat.apache.org/download-90.cgi) at the time of writing).
diff --git a/tools/federation/pom.xml b/tools/federation/pom.xml
index d31678113c1..d08ed1a984b 100644
--- a/tools/federation/pom.xml
+++ b/tools/federation/pom.xml
@@ -101,7 +101,7 @@
${project.version}
test
-
+
org.eclipse.jetty
jetty-server
diff --git a/tools/federation/src/test/java/org/eclipse/rdf4j/federated/server/EmbeddedServer.java b/tools/federation/src/test/java/org/eclipse/rdf4j/federated/server/EmbeddedServer.java
index 3ec9b241473..3bd5030854a 100644
--- a/tools/federation/src/test/java/org/eclipse/rdf4j/federated/server/EmbeddedServer.java
+++ b/tools/federation/src/test/java/org/eclipse/rdf4j/federated/server/EmbeddedServer.java
@@ -14,6 +14,7 @@
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.ServerConnector;
+import org.eclipse.jetty.webapp.ClassMatcher;
import org.eclipse.jetty.webapp.WebAppContext;
public class EmbeddedServer {
@@ -39,7 +40,7 @@ public EmbeddedServer(String host, int port, String contextPath, String warPath)
jetty.addConnector(conn);
WebAppContext webapp = new WebAppContext();
- webapp.getServerClasspathPattern().add("org.slf4j.", "ch.qos.logback.");
+ webapp.addServerClassMatcher(new ClassMatcher("org.slf4j.", "ch.qos.logback."));
webapp.setContextPath(contextPath);
webapp.setTempDirectory(new File("temp/webapp/"));
webapp.setWar(warPath);
diff --git a/tools/pom.xml b/tools/pom.xml
index e5b8cae42e0..f9636f00b32 100644
--- a/tools/pom.xml
+++ b/tools/pom.xml
@@ -49,22 +49,6 @@
-
-
- javax.servlet
- javax.servlet-api
- ${servlet.version}
-
-
- javax.servlet.jsp
- jsp-api
- 2.2
-
-
- javax.servlet
- jstl
- 1.2
-
org.ebaysf.web
cors-filter
diff --git a/tools/server-spring/pom.xml b/tools/server-spring/pom.xml
index 4962bbd5296..6a29e3ef7bb 100644
--- a/tools/server-spring/pom.xml
+++ b/tools/server-spring/pom.xml
@@ -28,8 +28,8 @@
${project.version}
- javax.servlet
- javax.servlet-api
+ jakarta.servlet
+ jakarta.servlet-api
provided
diff --git a/tools/server/pom.xml b/tools/server/pom.xml
index fcec34c42d2..1e9161a0eb4 100644
--- a/tools/server/pom.xml
+++ b/tools/server/pom.xml
@@ -32,13 +32,13 @@
${project.version}
- javax.servlet.jsp
- jsp-api
+ jakarta.servlet.jsp
+ jakarta.servlet.jsp-api
provided
- javax.servlet
- jstl
+ jakarta.servlet.jsp.jstl
+ jakarta.servlet.jsp.jstl-api
provided
diff --git a/tools/server/src/test/java/org/eclipse/rdf4j/http/server/TestServer.java b/tools/server/src/test/java/org/eclipse/rdf4j/http/server/TestServer.java
index 2de9f9bf75a..58684209109 100644
--- a/tools/server/src/test/java/org/eclipse/rdf4j/http/server/TestServer.java
+++ b/tools/server/src/test/java/org/eclipse/rdf4j/http/server/TestServer.java
@@ -17,6 +17,7 @@
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.server.ServerConnector;
+import org.eclipse.jetty.webapp.ClassMatcher;
import org.eclipse.jetty.webapp.WebAppContext;
import org.eclipse.rdf4j.http.protocol.Protocol;
import org.eclipse.rdf4j.repository.RepositoryException;
@@ -69,7 +70,7 @@ public TestServer() throws IOException {
jetty.addConnector(conn);
WebAppContext webapp = new WebAppContext();
- webapp.getServerClasspathPattern().add("org.slf4j.", "ch.qos.logback.");
+ webapp.addServerClassMatcher(new ClassMatcher("org.slf4j.", "ch.qos.logback."));
webapp.setContextPath(RDF4J_CONTEXT);
// warPath configured in pom.xml maven-war-plugin configuration
webapp.setWar("./target/rdf4j-server");
diff --git a/tools/workbench/pom.xml b/tools/workbench/pom.xml
index 58c4e083595..e6e03549171 100644
--- a/tools/workbench/pom.xml
+++ b/tools/workbench/pom.xml
@@ -36,8 +36,8 @@
${project.version}
- javax.servlet
- javax.servlet-api
+ jakarta.servlet
+ jakarta.servlet-api
provided