diff --git a/Client/pom.xml b/Client/pom.xml
index 370c404b..5d009313 100644
--- a/Client/pom.xml
+++ b/Client/pom.xml
@@ -8,7 +8,7 @@
org.gusdb
oauth2
- 4.1.1-SNAPSHOT
+ 4.1.1-jakarta-SNAPSHOT
@@ -18,7 +18,7 @@
jersey-client
-
+
org.json
json
diff --git a/Client/src/main/java/org/gusdb/oauth2/client/HttpStatus.java b/Client/src/main/java/org/gusdb/oauth2/client/HttpStatus.java
index a475eb2c..ca1d939f 100644
--- a/Client/src/main/java/org/gusdb/oauth2/client/HttpStatus.java
+++ b/Client/src/main/java/org/gusdb/oauth2/client/HttpStatus.java
@@ -1,7 +1,7 @@
package org.gusdb.oauth2.client;
-import javax.ws.rs.core.Response.Status.Family;
-import javax.ws.rs.core.Response.StatusType;
+import jakarta.ws.rs.core.Response.Status.Family;
+import jakarta.ws.rs.core.Response.StatusType;
public enum HttpStatus implements StatusType {
diff --git a/Client/src/main/java/org/gusdb/oauth2/client/OAuthClient.java b/Client/src/main/java/org/gusdb/oauth2/client/OAuthClient.java
index 92f51112..b247ef8d 100644
--- a/Client/src/main/java/org/gusdb/oauth2/client/OAuthClient.java
+++ b/Client/src/main/java/org/gusdb/oauth2/client/OAuthClient.java
@@ -23,17 +23,17 @@
import javax.net.ssl.SSLContext;
import javax.net.ssl.TrustManager;
-import javax.ws.rs.ForbiddenException;
-import javax.ws.rs.NotAuthorizedException;
-import javax.ws.rs.client.ClientBuilder;
-import javax.ws.rs.client.Entity;
-import javax.ws.rs.client.Invocation;
-import javax.ws.rs.core.HttpHeaders;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.MultivaluedHashMap;
-import javax.ws.rs.core.MultivaluedMap;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.Response.Status;
+import jakarta.ws.rs.ForbiddenException;
+import jakarta.ws.rs.NotAuthorizedException;
+import jakarta.ws.rs.client.ClientBuilder;
+import jakarta.ws.rs.client.Entity;
+import jakarta.ws.rs.client.Invocation;
+import jakarta.ws.rs.core.HttpHeaders;
+import jakarta.ws.rs.core.MediaType;
+import jakarta.ws.rs.core.MultivaluedHashMap;
+import jakarta.ws.rs.core.MultivaluedMap;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response.Status;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
diff --git a/Server/pom.xml b/Server/pom.xml
index 1b6ce522..d307e9e9 100644
--- a/Server/pom.xml
+++ b/Server/pom.xml
@@ -84,8 +84,8 @@
- javax.servlet
- servlet-api
+ jakarta.servlet
+ jakarta.servlet-api
provided
diff --git a/Server/src/main/java/org/gusdb/oauth2/assets/StaticResource.java b/Server/src/main/java/org/gusdb/oauth2/assets/StaticResource.java
index ab717846..20654570 100644
--- a/Server/src/main/java/org/gusdb/oauth2/assets/StaticResource.java
+++ b/Server/src/main/java/org/gusdb/oauth2/assets/StaticResource.java
@@ -10,7 +10,7 @@
import java.util.Optional;
import java.util.concurrent.atomic.AtomicInteger;
-import javax.ws.rs.core.StreamingOutput;
+import jakarta.ws.rs.core.StreamingOutput;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
diff --git a/Server/src/main/java/org/gusdb/oauth2/server/ApplicationListener.java b/Server/src/main/java/org/gusdb/oauth2/server/ApplicationListener.java
index 7a7ae1bc..f1cf8cfb 100644
--- a/Server/src/main/java/org/gusdb/oauth2/server/ApplicationListener.java
+++ b/Server/src/main/java/org/gusdb/oauth2/server/ApplicationListener.java
@@ -1,7 +1,7 @@
package org.gusdb.oauth2.server;
-import javax.servlet.ServletContextEvent;
-import javax.servlet.ServletContextListener;
+import jakarta.servlet.ServletContextEvent;
+import jakarta.servlet.ServletContextListener;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
diff --git a/Server/src/main/java/org/gusdb/oauth2/server/OAuthServlet.java b/Server/src/main/java/org/gusdb/oauth2/server/OAuthServlet.java
index bc7d9f5c..a0ba2d09 100644
--- a/Server/src/main/java/org/gusdb/oauth2/server/OAuthServlet.java
+++ b/Server/src/main/java/org/gusdb/oauth2/server/OAuthServlet.java
@@ -5,8 +5,8 @@
import java.nio.file.Path;
import java.nio.file.Paths;
-import javax.servlet.ServletContext;
-import javax.servlet.ServletException;
+import jakarta.servlet.ServletContext;
+import jakarta.servlet.ServletException;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
diff --git a/Server/src/main/java/org/gusdb/oauth2/server/ServiceApplication.java b/Server/src/main/java/org/gusdb/oauth2/server/ServiceApplication.java
index 1de11917..41d4ee5b 100644
--- a/Server/src/main/java/org/gusdb/oauth2/server/ServiceApplication.java
+++ b/Server/src/main/java/org/gusdb/oauth2/server/ServiceApplication.java
@@ -3,7 +3,7 @@
import java.util.HashSet;
import java.util.Set;
-import javax.ws.rs.core.Application;
+import jakarta.ws.rs.core.Application;
import org.gusdb.oauth2.service.ExceptionMapper;
import org.gusdb.oauth2.service.IFrameAllowanceFilter;
diff --git a/Server/src/main/java/org/gusdb/oauth2/service/ExceptionMapper.java b/Server/src/main/java/org/gusdb/oauth2/service/ExceptionMapper.java
index 4355648d..7780dedf 100644
--- a/Server/src/main/java/org/gusdb/oauth2/service/ExceptionMapper.java
+++ b/Server/src/main/java/org/gusdb/oauth2/service/ExceptionMapper.java
@@ -1,11 +1,11 @@
package org.gusdb.oauth2.service;
-import javax.ws.rs.NotFoundException;
-import javax.ws.rs.WebApplicationException;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.Response.Status;
-import javax.ws.rs.ext.Provider;
+import jakarta.ws.rs.NotFoundException;
+import jakarta.ws.rs.WebApplicationException;
+import jakarta.ws.rs.core.MediaType;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response.Status;
+import jakarta.ws.rs.ext.Provider;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
@@ -13,7 +13,7 @@
import org.json.JSONException;
@Provider
-public class ExceptionMapper implements javax.ws.rs.ext.ExceptionMapper {
+public class ExceptionMapper implements jakarta.ws.rs.ext.ExceptionMapper {
private static Logger LOG = LogManager.getLogger(ExceptionMapper.class);
diff --git a/Server/src/main/java/org/gusdb/oauth2/service/OAuthRequestHandler.java b/Server/src/main/java/org/gusdb/oauth2/service/OAuthRequestHandler.java
index fefe8966..2a21ffd9 100644
--- a/Server/src/main/java/org/gusdb/oauth2/service/OAuthRequestHandler.java
+++ b/Server/src/main/java/org/gusdb/oauth2/service/OAuthRequestHandler.java
@@ -12,9 +12,9 @@
import javax.json.JsonObject;
import javax.json.JsonObjectBuilder;
import javax.json.stream.JsonGenerator;
-import javax.servlet.http.HttpServletResponse;
-import javax.ws.rs.BadRequestException;
-import javax.ws.rs.core.Response;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.ws.rs.BadRequestException;
+import jakarta.ws.rs.core.Response;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
diff --git a/Server/src/main/java/org/gusdb/oauth2/service/OAuthResponseFactory.java b/Server/src/main/java/org/gusdb/oauth2/service/OAuthResponseFactory.java
index fc14ad40..8ecab216 100644
--- a/Server/src/main/java/org/gusdb/oauth2/service/OAuthResponseFactory.java
+++ b/Server/src/main/java/org/gusdb/oauth2/service/OAuthResponseFactory.java
@@ -2,8 +2,8 @@
import java.util.Collections;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.Response.ResponseBuilder;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response.ResponseBuilder;
import org.apache.oltu.oauth2.common.exception.OAuthProblemException;
import org.gusdb.oauth2.client.UnacceptableRequestReason;
diff --git a/Server/src/main/java/org/gusdb/oauth2/service/OAuthService.java b/Server/src/main/java/org/gusdb/oauth2/service/OAuthService.java
index 52e8b30e..8d4000c9 100644
--- a/Server/src/main/java/org/gusdb/oauth2/service/OAuthService.java
+++ b/Server/src/main/java/org/gusdb/oauth2/service/OAuthService.java
@@ -26,27 +26,26 @@
import javax.json.JsonObject;
import javax.json.JsonValue;
import javax.json.stream.JsonParsingException;
-import javax.servlet.ServletContext;
-import javax.servlet.http.HttpServletRequest;
-import javax.ws.rs.BadRequestException;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.FormParam;
-import javax.ws.rs.GET;
-import javax.ws.rs.HeaderParam;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.PathParam;
-import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.HttpHeaders;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.MultivaluedMap;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.Response.ResponseBuilder;
-import javax.ws.rs.core.Response.Status;
-import javax.ws.rs.core.Variant;
+import jakarta.servlet.ServletContext;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.ws.rs.BadRequestException;
+import jakarta.ws.rs.Consumes;
+import jakarta.ws.rs.FormParam;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.HeaderParam;
+import jakarta.ws.rs.POST;
+import jakarta.ws.rs.PUT;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.PathParam;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.QueryParam;
+import jakarta.ws.rs.core.Context;
+import jakarta.ws.rs.core.HttpHeaders;
+import jakarta.ws.rs.core.MediaType;
+import jakarta.ws.rs.core.MultivaluedMap;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response.Status;
+import jakarta.ws.rs.core.Variant;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
diff --git a/Server/src/main/java/org/gusdb/oauth2/service/Session.java b/Server/src/main/java/org/gusdb/oauth2/service/Session.java
index 36093110..d9985678 100644
--- a/Server/src/main/java/org/gusdb/oauth2/service/Session.java
+++ b/Server/src/main/java/org/gusdb/oauth2/service/Session.java
@@ -5,7 +5,7 @@
import java.util.Set;
import java.util.UUID;
-import javax.servlet.http.HttpSession;
+import jakarta.servlet.http.HttpSession;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
diff --git a/Server/src/main/java/org/gusdb/oauth2/service/token/TokenFactory.java b/Server/src/main/java/org/gusdb/oauth2/service/token/TokenFactory.java
index 05e02251..c7f72c7d 100644
--- a/Server/src/main/java/org/gusdb/oauth2/service/token/TokenFactory.java
+++ b/Server/src/main/java/org/gusdb/oauth2/service/token/TokenFactory.java
@@ -8,7 +8,7 @@
import javax.json.JsonObject;
import javax.json.JsonObjectBuilder;
import javax.json.JsonValue;
-import javax.ws.rs.ForbiddenException;
+import jakarta.ws.rs.ForbiddenException;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
diff --git a/Server/src/main/java/org/gusdb/oauth2/service/util/JerseyHttpRequestWrapper.java b/Server/src/main/java/org/gusdb/oauth2/service/util/JerseyHttpRequestWrapper.java
index a1a65702..6426dcc5 100644
--- a/Server/src/main/java/org/gusdb/oauth2/service/util/JerseyHttpRequestWrapper.java
+++ b/Server/src/main/java/org/gusdb/oauth2/service/util/JerseyHttpRequestWrapper.java
@@ -7,9 +7,9 @@
import java.util.Map;
import java.util.NoSuchElementException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletRequestWrapper;
-import javax.ws.rs.core.MultivaluedMap;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpServletRequestWrapper;
+import jakarta.ws.rs.core.MultivaluedMap;
public class JerseyHttpRequestWrapper extends HttpServletRequestWrapper {
diff --git a/Server/src/main/java/org/gusdb/oauth2/service/util/StateParamHttpRequest.java b/Server/src/main/java/org/gusdb/oauth2/service/util/StateParamHttpRequest.java
index 22c51d5f..12f93fd4 100644
--- a/Server/src/main/java/org/gusdb/oauth2/service/util/StateParamHttpRequest.java
+++ b/Server/src/main/java/org/gusdb/oauth2/service/util/StateParamHttpRequest.java
@@ -8,11 +8,11 @@
import java.util.Locale;
import java.util.Map;
-import javax.servlet.RequestDispatcher;
-import javax.servlet.ServletInputStream;
-import javax.servlet.http.Cookie;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpSession;
+import jakarta.servlet.RequestDispatcher;
+import jakarta.servlet.ServletInputStream;
+import jakarta.servlet.http.Cookie;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.servlet.http.HttpSession;
import org.apache.oltu.oauth2.common.OAuth;
diff --git a/Server/src/test/java/org/gusdb/oauth2/service/TokenSigningValidationTest.java b/Server/src/test/java/org/gusdb/oauth2/service/TokenSigningValidationTest.java
index 234967e1..10431e33 100644
--- a/Server/src/test/java/org/gusdb/oauth2/service/TokenSigningValidationTest.java
+++ b/Server/src/test/java/org/gusdb/oauth2/service/TokenSigningValidationTest.java
@@ -9,8 +9,8 @@
import java.util.Set;
import java.util.function.Supplier;
-import javax.json.Json;
-import javax.json.JsonObject;
+import jakarta.json.Json;
+import jakarta.json.JsonObject;
import org.gusdb.oauth2.exception.CryptoException;
import org.gusdb.oauth2.shared.ECPublicKeyRepresentation;
diff --git a/pom.xml b/pom.xml
index 4c958a30..e0c7716a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,12 +4,12 @@
OAuth2
oauth2
pom
- 4.1.1-SNAPSHOT
+ 4.1.1-jakarta-SNAPSHOT
org.gusdb
base-pom
- 2.26
+ 2.26-jakarta
@@ -23,8 +23,10 @@
Client
+