You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by bd...@apache.org on 2022/06/01 16:16:35 UTC

[directory-scimple] 01/01: Migrate to jakarta packages

This is an automated email from the ASF dual-hosted git repository.

bdemers pushed a commit to branch jakarta-packages
in repository https://gitbox.apache.org/repos/asf/directory-scimple.git

commit 91a51706282e8528a24d95321c06fd4ad78cb764
Author: Brian Demers <bd...@apache.org>
AuthorDate: Wed Jun 1 12:16:29 2022 -0400

    Migrate to jakarta packages
    
    - Replaced usage of `javax` pacages with the equivalent `jakarta` package
    - Set minimum Java version to 11 (CI currently tests with 11 and 17)
---
 .github/workflows/build.yml                        |  2 +-
 pom.xml                                            | 68 ++++++----------------
 .../directory/scim/client/rest/BaseScimClient.java | 16 ++---
 .../scim/client/rest/ResourceTypesClient.java      | 10 ++--
 .../scim/client/rest/ScimGroupClient.java          |  4 +-
 .../directory/scim/client/rest/ScimSelfClient.java | 10 ++--
 .../directory/scim/client/rest/ScimUserClient.java |  4 +-
 .../rest/legacy/Version1ScimGroupClient.java       |  4 +-
 .../client/rest/legacy/Version1ScimUserClient.java |  4 +-
 scim-common-ws/pom.xml                             | 12 ++--
 .../directory/scim/ws/common/ErrorMessage.java     | 20 +++----
 .../scim/ws/common/JaxRsStatusAdapterType.java     | 10 ++--
 .../apache/directory/scim/ws/common/RestCall.java  |  4 +-
 .../directory/scim/ws/common/RestClientUtil.java   | 12 ++--
 .../directory/scim/ws/common/XmlStatusAdapter.java |  4 +-
 .../exception/BackingStoreChangedException.java    |  4 +-
 .../common/exception/ConflictingDataException.java |  4 +-
 .../ws/common/exception/RestClientException.java   |  4 +-
 .../ws/common/exception/RestServerException.java   |  4 +-
 .../ws/common/exception/ServiceAuthException.java  |  2 +-
 scim-server/scim-server-common/pom.xml             | 21 ++++---
 .../server/configuration/ServerConfiguration.java  |  4 +-
 .../exception/FilterParseExceptionMapper.java      |  6 +-
 .../scim/server/exception/ScimServerException.java |  2 +-
 .../exception/UnableToCreateResourceException.java |  2 +-
 .../exception/UnableToDeleteResourceException.java |  2 +-
 .../exception/UnableToResolveIdException.java      |  2 +-
 .../UnableToRetrieveExtensionsException.java       |  2 +-
 .../UnableToRetrieveResourceException.java         |  2 +-
 .../exception/UnableToUpdateResourceException.java |  2 +-
 .../scim/server/filter/ApiOriginFilter.java        | 17 +++---
 .../directory/scim/server/provider/Provider.java   |  6 +-
 .../scim/server/provider/ProviderRegistry.java     | 14 ++---
 .../scim/server/provider/UpdateRequest.java        |  4 +-
 .../exceptions/ClientFilterException.java          |  2 +-
 .../server/rest/BaseResourceTypeResourceImpl.java  | 24 ++++----
 .../scim/server/rest/BulkResourceImpl.java         | 14 ++---
 .../scim/server/rest/GroupResourceImpl.java        |  8 +--
 .../server/rest/ObjectMapperContextResolver.java   |  6 +-
 .../scim/server/rest/ObjectMapperFactory.java      |  6 +-
 .../server/rest/ResourceTypesResourceImpl.java     | 12 ++--
 .../scim/server/rest/SchemaResourceImpl.java       | 12 ++--
 ...er.java => ScimJacksonXmlBindJsonProvider.java} | 14 ++---
 .../scim/server/rest/ScimResourceHelper.java       |  2 +-
 .../scim/server/rest/SelfResourceImpl.java         | 14 ++---
 .../rest/ServiceProviderConfigResourceImpl.java    | 12 ++--
 .../scim/server/rest/UserResourceImpl.java         | 10 ++--
 .../server/rest/WebApplicationExceptionMapper.java | 18 +++---
 .../directory/scim/server/schema/Registry.java     |  4 +-
 .../schema/ScimExtensionRegistryProducer.java      |  2 +-
 .../scim/server/utility/AttributeUtil.java         |  6 +-
 .../scim/server/utility/EndpointUtil.java          |  6 +-
 .../scim/server/utility/EtagGenerator.java         |  4 +-
 .../scim/server/utility/UriUtilities.java          |  4 +-
 .../scim/server/provider/ProviderRegistryTest.java |  2 +-
 .../scim/server/provider/ProviderTest.java         |  4 +-
 .../scim/server/provider/UpdateRequestTest.java    |  2 +-
 .../rest/BaseResourceTypeResourceImplTest.java     |  6 +-
 .../scim/server/rest/SelfResourceImplTest.java     |  6 +-
 .../server/utility/ExampleObjectExtension.java     | 10 ++--
 .../directory/scim/server/utility/Subobject.java   |  2 +-
 .../scim-server-example/scim-server-memory/pom.xml |  5 +-
 .../memory/extensions/LuckyNumberExtension.java    |  8 +--
 .../scim/example/memory/rest/RestApplication.java  |  4 +-
 .../example/memory/rest/SwaggerJaxrsConfig.java    | 13 ++---
 .../memory/service/InMemoryGroupService.java       |  4 +-
 .../memory/service/InMemorySelfResolverImpl.java   |  4 +-
 .../memory/service/InMemoryUserService.java        |  6 +-
 .../example/memory/service/ScimConfigurator.java   | 10 ++--
 scim-spec/scim-spec-protocol/pom.xml               |  4 +-
 .../spec/adapter/AttributeReferenceAdapter.java    |  2 +-
 .../directory/scim/spec/adapter/FilterAdapter.java |  2 +-
 .../directory/scim/spec/adapter/FilterWrapper.java |  6 +-
 .../spec/protocol/BaseResourceTypeResource.java    | 24 ++++----
 .../directory/scim/spec/protocol/BulkResource.java | 18 +++---
 .../scim/spec/protocol/ErrorMessageType.java       |  4 +-
 .../scim/spec/protocol/GroupResource.java          |  2 +-
 .../scim/spec/protocol/ResourceTypesResource.java  | 16 ++---
 .../scim/spec/protocol/SchemaResource.java         | 16 ++---
 .../scim/spec/protocol/SearchResource.java         | 12 ++--
 .../directory/scim/spec/protocol/SelfResource.java | 22 +++----
 .../protocol/ServiceProviderConfigResource.java    | 16 ++---
 .../directory/scim/spec/protocol/UserResource.java |  2 +-
 .../scim/spec/protocol/data/BulkOperation.java     | 14 ++---
 .../scim/spec/protocol/data/BulkRequest.java       |  8 +--
 .../scim/spec/protocol/data/BulkResponse.java      | 12 ++--
 .../scim/spec/protocol/data/ErrorResponse.java     | 14 ++---
 .../scim/spec/protocol/data/ListResponse.java      |  8 +--
 .../scim/spec/protocol/data/PatchOperation.java    | 14 ++---
 .../protocol/data/PatchOperationPathAdapter.java   |  2 +-
 .../scim/spec/protocol/data/PatchRequest.java      |  8 +--
 .../scim/spec/protocol/data/SearchRequest.java     | 10 ++--
 .../scim/spec/protocol/data/StatusAdapter.java     |  6 +-
 .../spec/protocol/exception/ScimException.java     |  2 +-
 .../scim/spec/protocol/search/SortOrder.java       |  2 +-
 scim-spec/scim-spec-schema/pom.xml                 | 49 ++++++++++------
 .../scim/spec/adapter/Iso8601DateTimeAdapter.java  |  2 +-
 .../scim/spec/adapter/LocalDateTimeAdapter.java    |  2 +-
 .../scim/spec/extension/EnterpriseExtension.java   | 10 ++--
 .../scim/spec/json/ObjectMapperFactory.java        |  8 +--
 .../directory/scim/spec/resources/Address.java     |  8 +--
 .../scim/spec/resources/BaseResource.java          |  8 +--
 .../directory/scim/spec/resources/Email.java       |  8 +--
 .../directory/scim/spec/resources/Entitlement.java |  8 +--
 .../apache/directory/scim/spec/resources/Im.java   |  8 +--
 .../scim/spec/resources/KeyedResource.java         |  8 +--
 .../apache/directory/scim/spec/resources/Name.java |  8 +--
 .../directory/scim/spec/resources/PhoneNumber.java |  8 +--
 .../directory/scim/spec/resources/Photo.java       |  8 +--
 .../apache/directory/scim/spec/resources/Role.java |  8 +--
 .../scim/spec/resources/ScimExtension.java         |  2 +-
 .../directory/scim/spec/resources/ScimGroup.java   |  8 +--
 .../scim/spec/resources/ScimResource.java          | 10 ++--
 .../spec/resources/ScimResourceWithOptionalId.java |  6 +-
 .../directory/scim/spec/resources/ScimUser.java    |  8 +--
 .../scim/spec/resources/X509Certificate.java       |  8 +--
 .../apache/directory/scim/spec/schema/Meta.java    | 12 ++--
 .../scim/spec/schema/ResourceReference.java        | 12 ++--
 .../directory/scim/spec/schema/ResourceType.java   |  8 +--
 .../apache/directory/scim/spec/schema/Schema.java  | 24 ++++----
 .../spec/schema/ServiceProviderConfiguration.java  | 12 ++--
 .../apache/directory/scim/spec/validator/Urn.java  |  4 +-
 .../scim/spec/validator/UrnValidator.java          |  4 +-
 .../directory/scim/spec/schema/SchemaTest.java     |  8 +--
 124 files changed, 528 insertions(+), 549 deletions(-)

diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 85b06d8..12e790c 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -28,7 +28,7 @@ jobs:
 
     strategy:
       matrix:
-        java: [8, 11, 17]
+        java: [11, 17]
 
     runs-on: ubuntu-latest
 
diff --git a/pom.xml b/pom.xml
index e764853..88324f0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -33,14 +33,17 @@
   <url>https://github.com/apache/directory-scimple</url>
 
   <properties>
-    <maven.compiler.source>8</maven.compiler.source>
-    <maven.compiler.target>8</maven.compiler.target>
+    <jdk.version>11</jdk.version>
+    <maven.compiler.source>${jdk.version}</maven.compiler.source>
+    <maven.compiler.target>${jdk.version}</maven.compiler.target>
+    <maven.compiler.release>${jdk.version}</maven.compiler.release>
     <version.jackson>2.13.3</version.jackson>
     <version.lombok>1.18.24</version.lombok>
     <version.lombok.plugin>1.18.20.0</version.lombok.plugin>
     <version.restfuse>1.2.0</version.restfuse>
     <version.slf4j>1.7.36</version.slf4j>
     <version.antlr4>4.5.3</version.antlr4>
+    <version.resteasy>6.0.1.Final</version.resteasy>
   </properties>
 
   <modules>
@@ -146,47 +149,6 @@
         <version>2.23-SNAPSHOT</version>
       </dependency>
 
-      <dependency>
-        <groupId>javax.ejb</groupId>
-        <artifactId>javax.ejb-api</artifactId>
-        <version>3.2.2</version>
-      </dependency>
-      <dependency>
-        <groupId>javax.enterprise</groupId>
-        <artifactId>cdi-api</artifactId>
-        <version>2.0</version>
-      </dependency>
-      <dependency>
-        <groupId>javax.servlet</groupId>
-        <artifactId>javax.servlet-api</artifactId>
-        <version>4.0.1</version>
-      </dependency>
-      <dependency>
-        <groupId>javax.inject</groupId>
-        <artifactId>javax.inject</artifactId>
-        <version>1</version>
-      </dependency>
-      <dependency>
-        <groupId>javax</groupId>
-        <artifactId>javaee-api</artifactId>
-        <version>7.0</version>
-        <scope>provided</scope>
-      </dependency>
-      <dependency>
-        <groupId>javax.ws.rs</groupId>
-        <artifactId>javax.ws.rs-api</artifactId>
-        <version>2.1.1</version>
-      </dependency>
-      <dependency>
-        <groupId>javax.xml.bind</groupId>
-        <artifactId>jaxb-api</artifactId>
-        <version>2.3.1</version>
-      </dependency>
-      <dependency>
-        <groupId>javax.validation</groupId>
-        <artifactId>validation-api</artifactId>
-        <version>2.0.1.Final</version>
-      </dependency>
       <dependency>
         <groupId>org.jboss.weld.se</groupId>
         <artifactId>weld-se</artifactId>
@@ -203,6 +165,13 @@
         <version>${version.lombok}</version>
       </dependency>
 
+      <dependency>
+        <groupId>jakarta.platform</groupId>
+        <artifactId>jakarta.jakartaee-bom</artifactId>
+        <version>9.1.0</version>
+        <scope>import</scope>
+        <type>pom</type>
+      </dependency>
       <dependency>
         <groupId>org.junit</groupId>
         <artifactId>junit-bom</artifactId>
@@ -226,27 +195,27 @@
         <scope>import</scope>
       </dependency>
       <dependency>
-        <groupId>org.hibernate</groupId>
+        <groupId>org.hibernate.validator</groupId>
         <artifactId>hibernate-validator</artifactId>
-        <version>5.4.3.Final</version>
+        <version>7.0.4.Final</version>
         <scope>test</scope>
       </dependency>
       <dependency>
         <groupId>org.glassfish</groupId>
-        <artifactId>javax.el</artifactId>
-        <version>3.0.1-b12</version>
+        <artifactId>jakarta.el</artifactId>
+        <version>4.0.2</version>
         <scope>test</scope>
       </dependency>
       <dependency>
         <groupId>org.jboss.resteasy</groupId>
         <artifactId>resteasy-client</artifactId>
-        <version>4.7.4.Final</version>
+        <version>${version.resteasy}</version>
         <scope>test</scope>
       </dependency>
       <dependency>
         <groupId>org.jboss.resteasy</groupId>
         <artifactId>resteasy-jackson2-provider</artifactId>
-        <version>6.0.1.Final</version>
+        <version>${version.resteasy}</version>
         <scope>test</scope>
       </dependency>
       <!-- Guava is a transitive dep, forcing a newer version to avoid older vulns -->
@@ -442,6 +411,7 @@
         <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-javadoc-plugin</artifactId>
+          <version>3.4.0</version>
           <executions>
             <execution>
               <id>attach-javadocs</id>
diff --git a/scim-client/src/main/java/org/apache/directory/scim/client/rest/BaseScimClient.java b/scim-client/src/main/java/org/apache/directory/scim/client/rest/BaseScimClient.java
index 4fd0980..dcb2e7e 100644
--- a/scim-client/src/main/java/org/apache/directory/scim/client/rest/BaseScimClient.java
+++ b/scim-client/src/main/java/org/apache/directory/scim/client/rest/BaseScimClient.java
@@ -23,14 +23,14 @@ import java.util.Optional;
 import java.util.Set;
 import java.util.function.Function;
 
-import javax.ws.rs.ProcessingException;
-import javax.ws.rs.client.Client;
-import javax.ws.rs.client.Entity;
-import javax.ws.rs.client.Invocation;
-import javax.ws.rs.client.WebTarget;
-import javax.ws.rs.core.GenericType;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.Response.Status;
+import jakarta.ws.rs.ProcessingException;
+import jakarta.ws.rs.client.Client;
+import jakarta.ws.rs.client.Entity;
+import jakarta.ws.rs.client.Invocation;
+import jakarta.ws.rs.client.WebTarget;
+import jakarta.ws.rs.core.GenericType;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response.Status;
 
 import org.apache.directory.scim.spec.adapter.FilterWrapper;
 import org.apache.directory.scim.spec.annotation.ScimResourceType;
diff --git a/scim-client/src/main/java/org/apache/directory/scim/client/rest/ResourceTypesClient.java b/scim-client/src/main/java/org/apache/directory/scim/client/rest/ResourceTypesClient.java
index 139a60a..f6efba2 100644
--- a/scim-client/src/main/java/org/apache/directory/scim/client/rest/ResourceTypesClient.java
+++ b/scim-client/src/main/java/org/apache/directory/scim/client/rest/ResourceTypesClient.java
@@ -22,11 +22,11 @@ package org.apache.directory.scim.client.rest;
 import java.util.List;
 import java.util.Optional;
 
-import javax.ws.rs.ProcessingException;
-import javax.ws.rs.client.Client;
-import javax.ws.rs.client.WebTarget;
-import javax.ws.rs.core.GenericType;
-import javax.ws.rs.core.Response;
+import jakarta.ws.rs.ProcessingException;
+import jakarta.ws.rs.client.Client;
+import jakarta.ws.rs.client.WebTarget;
+import jakarta.ws.rs.core.GenericType;
+import jakarta.ws.rs.core.Response;
 
 import org.apache.directory.scim.spec.protocol.ResourceTypesResource;
 import org.apache.directory.scim.spec.schema.ResourceType;
diff --git a/scim-client/src/main/java/org/apache/directory/scim/client/rest/ScimGroupClient.java b/scim-client/src/main/java/org/apache/directory/scim/client/rest/ScimGroupClient.java
index 5ae3aee..860c5c8 100644
--- a/scim-client/src/main/java/org/apache/directory/scim/client/rest/ScimGroupClient.java
+++ b/scim-client/src/main/java/org/apache/directory/scim/client/rest/ScimGroupClient.java
@@ -19,8 +19,8 @@
 
 package org.apache.directory.scim.client.rest;
 
-import javax.ws.rs.client.Client;
-import javax.ws.rs.core.GenericType;
+import jakarta.ws.rs.client.Client;
+import jakarta.ws.rs.core.GenericType;
 
 import org.apache.directory.scim.spec.protocol.data.ListResponse;
 import org.apache.directory.scim.spec.resources.ScimGroup;
diff --git a/scim-client/src/main/java/org/apache/directory/scim/client/rest/ScimSelfClient.java b/scim-client/src/main/java/org/apache/directory/scim/client/rest/ScimSelfClient.java
index 33adef2..c07fd0e 100644
--- a/scim-client/src/main/java/org/apache/directory/scim/client/rest/ScimSelfClient.java
+++ b/scim-client/src/main/java/org/apache/directory/scim/client/rest/ScimSelfClient.java
@@ -19,11 +19,11 @@
 
 package org.apache.directory.scim.client.rest;
 
-import javax.ws.rs.client.Client;
-import javax.ws.rs.client.Entity;
-import javax.ws.rs.client.Invocation;
-import javax.ws.rs.client.WebTarget;
-import javax.ws.rs.core.Response;
+import jakarta.ws.rs.client.Client;
+import jakarta.ws.rs.client.Entity;
+import jakarta.ws.rs.client.Invocation;
+import jakarta.ws.rs.client.WebTarget;
+import jakarta.ws.rs.core.Response;
 
 import org.apache.directory.scim.spec.protocol.Constants;
 import org.apache.directory.scim.spec.protocol.SelfResource;
diff --git a/scim-client/src/main/java/org/apache/directory/scim/client/rest/ScimUserClient.java b/scim-client/src/main/java/org/apache/directory/scim/client/rest/ScimUserClient.java
index 54493b0..8b6644f 100644
--- a/scim-client/src/main/java/org/apache/directory/scim/client/rest/ScimUserClient.java
+++ b/scim-client/src/main/java/org/apache/directory/scim/client/rest/ScimUserClient.java
@@ -19,8 +19,8 @@
 
 package org.apache.directory.scim.client.rest;
 
-import javax.ws.rs.client.Client;
-import javax.ws.rs.core.GenericType;
+import jakarta.ws.rs.client.Client;
+import jakarta.ws.rs.core.GenericType;
 
 import org.apache.directory.scim.spec.protocol.data.ListResponse;
 import org.apache.directory.scim.spec.resources.ScimUser;
diff --git a/scim-client/src/main/java/org/apache/directory/scim/client/rest/legacy/Version1ScimGroupClient.java b/scim-client/src/main/java/org/apache/directory/scim/client/rest/legacy/Version1ScimGroupClient.java
index 64df96c..88961f8 100644
--- a/scim-client/src/main/java/org/apache/directory/scim/client/rest/legacy/Version1ScimGroupClient.java
+++ b/scim-client/src/main/java/org/apache/directory/scim/client/rest/legacy/Version1ScimGroupClient.java
@@ -19,8 +19,8 @@
 
 package org.apache.directory.scim.client.rest.legacy;
 
-import javax.ws.rs.client.Client;
-import javax.ws.rs.core.MediaType;
+import jakarta.ws.rs.client.Client;
+import jakarta.ws.rs.core.MediaType;
 
 import org.apache.directory.scim.client.rest.ScimGroupClient;
 import org.apache.directory.scim.ws.common.RestCall;
diff --git a/scim-client/src/main/java/org/apache/directory/scim/client/rest/legacy/Version1ScimUserClient.java b/scim-client/src/main/java/org/apache/directory/scim/client/rest/legacy/Version1ScimUserClient.java
index 30027a6..c60c9a4 100644
--- a/scim-client/src/main/java/org/apache/directory/scim/client/rest/legacy/Version1ScimUserClient.java
+++ b/scim-client/src/main/java/org/apache/directory/scim/client/rest/legacy/Version1ScimUserClient.java
@@ -19,8 +19,8 @@
 
 package org.apache.directory.scim.client.rest.legacy;
 
-import javax.ws.rs.client.Client;
-import javax.ws.rs.core.MediaType;
+import jakarta.ws.rs.client.Client;
+import jakarta.ws.rs.core.MediaType;
 
 import org.apache.directory.scim.client.rest.ScimUserClient;
 import org.apache.directory.scim.ws.common.RestCall;
diff --git a/scim-common-ws/pom.xml b/scim-common-ws/pom.xml
index 13d7f71..fccc8f6 100644
--- a/scim-common-ws/pom.xml
+++ b/scim-common-ws/pom.xml
@@ -39,16 +39,16 @@
     </dependency>
 
     <dependency>
-      <groupId>javax.ws.rs</groupId>
-      <artifactId>javax.ws.rs-api</artifactId>
+      <groupId>jakarta.ws.rs</groupId>
+      <artifactId>jakarta.ws.rs-api</artifactId>
     </dependency>
     <dependency>
-      <groupId>javax.ejb</groupId>
-      <artifactId>javax.ejb-api</artifactId>
+      <groupId>jakarta.ejb</groupId>
+      <artifactId>jakarta.ejb-api</artifactId>
     </dependency>
     <dependency>
-      <groupId>javax.xml.bind</groupId>
-      <artifactId>jaxb-api</artifactId>
+      <groupId>jakarta.xml.bind</groupId>
+      <artifactId>jakarta.xml.bind-api</artifactId>
     </dependency>
 
     <dependency>
diff --git a/scim-common-ws/src/main/java/org/apache/directory/scim/ws/common/ErrorMessage.java b/scim-common-ws/src/main/java/org/apache/directory/scim/ws/common/ErrorMessage.java
index ac17c21..370fba5 100644
--- a/scim-common-ws/src/main/java/org/apache/directory/scim/ws/common/ErrorMessage.java
+++ b/scim-common-ws/src/main/java/org/apache/directory/scim/ws/common/ErrorMessage.java
@@ -23,16 +23,16 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.Response.ResponseBuilder;
-import javax.ws.rs.core.Response.Status;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlElementWrapper;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import jakarta.ws.rs.core.MediaType;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response.ResponseBuilder;
+import jakarta.ws.rs.core.Response.Status;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlElementWrapper;
+import jakarta.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 
 @XmlRootElement
 @XmlAccessorType(XmlAccessType.NONE)
diff --git a/scim-common-ws/src/main/java/org/apache/directory/scim/ws/common/JaxRsStatusAdapterType.java b/scim-common-ws/src/main/java/org/apache/directory/scim/ws/common/JaxRsStatusAdapterType.java
index be1d08c..01bbc7e 100644
--- a/scim-common-ws/src/main/java/org/apache/directory/scim/ws/common/JaxRsStatusAdapterType.java
+++ b/scim-common-ws/src/main/java/org/apache/directory/scim/ws/common/JaxRsStatusAdapterType.java
@@ -16,11 +16,11 @@
  */
 package org.apache.directory.scim.ws.common;
 
-import javax.ws.rs.core.Response.Status;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.ws.rs.core.Response.Status;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlRootElement;
 
 @XmlRootElement(name = "error-message")
 @XmlAccessorType(XmlAccessType.NONE)
diff --git a/scim-common-ws/src/main/java/org/apache/directory/scim/ws/common/RestCall.java b/scim-common-ws/src/main/java/org/apache/directory/scim/ws/common/RestCall.java
index 95e087c..cf3ae50 100644
--- a/scim-common-ws/src/main/java/org/apache/directory/scim/ws/common/RestCall.java
+++ b/scim-common-ws/src/main/java/org/apache/directory/scim/ws/common/RestCall.java
@@ -16,8 +16,8 @@
  */
 package org.apache.directory.scim.ws.common;
 
-import javax.ws.rs.client.Invocation;
-import javax.ws.rs.core.Response;
+import jakarta.ws.rs.client.Invocation;
+import jakarta.ws.rs.core.Response;
 import org.apache.directory.scim.ws.common.exception.RestClientException;
 
 /**
diff --git a/scim-common-ws/src/main/java/org/apache/directory/scim/ws/common/RestClientUtil.java b/scim-common-ws/src/main/java/org/apache/directory/scim/ws/common/RestClientUtil.java
index 7bc05c3..e4ce6dc 100644
--- a/scim-common-ws/src/main/java/org/apache/directory/scim/ws/common/RestClientUtil.java
+++ b/scim-common-ws/src/main/java/org/apache/directory/scim/ws/common/RestClientUtil.java
@@ -20,12 +20,12 @@ import java.util.Optional;
 import java.util.function.Consumer;
 import java.util.function.Function;
 
-import javax.ws.rs.ProcessingException;
-import javax.ws.rs.client.WebTarget;
-import javax.ws.rs.core.GenericType;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.Response.Status;
-import javax.ws.rs.core.Response.Status.Family;
+import jakarta.ws.rs.ProcessingException;
+import jakarta.ws.rs.client.WebTarget;
+import jakarta.ws.rs.core.GenericType;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response.Status;
+import jakarta.ws.rs.core.Response.Status.Family;
 import org.apache.directory.scim.ws.common.exception.BackingStoreChangedException;
 import org.apache.directory.scim.ws.common.exception.BadUrlException;
 import org.apache.directory.scim.ws.common.exception.ConflictingDataException;
diff --git a/scim-common-ws/src/main/java/org/apache/directory/scim/ws/common/XmlStatusAdapter.java b/scim-common-ws/src/main/java/org/apache/directory/scim/ws/common/XmlStatusAdapter.java
index f863b64..8199665 100644
--- a/scim-common-ws/src/main/java/org/apache/directory/scim/ws/common/XmlStatusAdapter.java
+++ b/scim-common-ws/src/main/java/org/apache/directory/scim/ws/common/XmlStatusAdapter.java
@@ -16,8 +16,8 @@
  */
 package org.apache.directory.scim.ws.common;
 
-import javax.ws.rs.core.Response.Status;
-import javax.xml.bind.annotation.adapters.XmlAdapter;
+import jakarta.ws.rs.core.Response.Status;
+import jakarta.xml.bind.annotation.adapters.XmlAdapter;
 
 public final class XmlStatusAdapter extends XmlAdapter<JaxRsStatusAdapterType, Status>
 {
diff --git a/scim-common-ws/src/main/java/org/apache/directory/scim/ws/common/exception/BackingStoreChangedException.java b/scim-common-ws/src/main/java/org/apache/directory/scim/ws/common/exception/BackingStoreChangedException.java
index 9784f64..42c0ef6 100644
--- a/scim-common-ws/src/main/java/org/apache/directory/scim/ws/common/exception/BackingStoreChangedException.java
+++ b/scim-common-ws/src/main/java/org/apache/directory/scim/ws/common/exception/BackingStoreChangedException.java
@@ -16,8 +16,8 @@
  */
 package org.apache.directory.scim.ws.common.exception;
 
-import javax.ws.rs.ProcessingException;
-import javax.ws.rs.core.Response;
+import jakarta.ws.rs.ProcessingException;
+import jakarta.ws.rs.core.Response;
 import org.apache.directory.scim.ws.common.ErrorMessage;
 
 public class BackingStoreChangedException extends Exception {
diff --git a/scim-common-ws/src/main/java/org/apache/directory/scim/ws/common/exception/ConflictingDataException.java b/scim-common-ws/src/main/java/org/apache/directory/scim/ws/common/exception/ConflictingDataException.java
index fac48e4..b8ecd43 100644
--- a/scim-common-ws/src/main/java/org/apache/directory/scim/ws/common/exception/ConflictingDataException.java
+++ b/scim-common-ws/src/main/java/org/apache/directory/scim/ws/common/exception/ConflictingDataException.java
@@ -16,8 +16,8 @@
  */
 package org.apache.directory.scim.ws.common.exception;
 
-import javax.ws.rs.ProcessingException;
-import javax.ws.rs.core.Response;
+import jakarta.ws.rs.ProcessingException;
+import jakarta.ws.rs.core.Response;
 import org.apache.directory.scim.ws.common.ErrorMessage;
 
 public class ConflictingDataException extends Exception {
diff --git a/scim-common-ws/src/main/java/org/apache/directory/scim/ws/common/exception/RestClientException.java b/scim-common-ws/src/main/java/org/apache/directory/scim/ws/common/exception/RestClientException.java
index 459ca08..605c4bd 100644
--- a/scim-common-ws/src/main/java/org/apache/directory/scim/ws/common/exception/RestClientException.java
+++ b/scim-common-ws/src/main/java/org/apache/directory/scim/ws/common/exception/RestClientException.java
@@ -33,8 +33,8 @@ package org.apache.directory.scim.ws.common.exception;
  * under the License.
  */
 
-import javax.ws.rs.ProcessingException;
-import javax.ws.rs.core.Response;
+import jakarta.ws.rs.ProcessingException;
+import jakarta.ws.rs.core.Response;
 import org.apache.directory.scim.ws.common.ErrorMessage;
 
 public class RestClientException extends Exception {
diff --git a/scim-common-ws/src/main/java/org/apache/directory/scim/ws/common/exception/RestServerException.java b/scim-common-ws/src/main/java/org/apache/directory/scim/ws/common/exception/RestServerException.java
index f69e9d0..870e49c 100644
--- a/scim-common-ws/src/main/java/org/apache/directory/scim/ws/common/exception/RestServerException.java
+++ b/scim-common-ws/src/main/java/org/apache/directory/scim/ws/common/exception/RestServerException.java
@@ -16,8 +16,8 @@
  */
 package org.apache.directory.scim.ws.common.exception;
 
-import javax.ejb.ApplicationException;
-import javax.ws.rs.core.Response;
+import jakarta.ejb.ApplicationException;
+import jakarta.ws.rs.core.Response;
 import org.apache.directory.scim.ws.common.ErrorMessage;
 
 @ApplicationException
diff --git a/scim-common-ws/src/main/java/org/apache/directory/scim/ws/common/exception/ServiceAuthException.java b/scim-common-ws/src/main/java/org/apache/directory/scim/ws/common/exception/ServiceAuthException.java
index 1ffb3ae..2e0bd47 100644
--- a/scim-common-ws/src/main/java/org/apache/directory/scim/ws/common/exception/ServiceAuthException.java
+++ b/scim-common-ws/src/main/java/org/apache/directory/scim/ws/common/exception/ServiceAuthException.java
@@ -16,7 +16,7 @@
  */
 package org.apache.directory.scim.ws.common.exception;
 
-import javax.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response;
 import org.apache.directory.scim.ws.common.ErrorMessage;
 
 public class ServiceAuthException extends Exception {
diff --git a/scim-server/scim-server-common/pom.xml b/scim-server/scim-server-common/pom.xml
index 00b2928..185a1e3 100644
--- a/scim-server/scim-server-common/pom.xml
+++ b/scim-server/scim-server-common/pom.xml
@@ -30,25 +30,24 @@
 
   <dependencies>
     <dependency>
-      <groupId>javax.servlet</groupId>
-      <artifactId>javax.servlet-api</artifactId>
+      <groupId>jakarta.servlet</groupId>
+      <artifactId>jakarta.servlet-api</artifactId>
     </dependency>
     <dependency>
-      <groupId>javax.inject</groupId>
-      <artifactId>javax.inject</artifactId>
+      <groupId>jakarta.inject</groupId>
+      <artifactId>jakarta.inject-api</artifactId>
     </dependency>
     <dependency>
-      <groupId>javax.ejb</groupId>
-      <artifactId>javax.ejb-api</artifactId>
+      <groupId>jakarta.ejb</groupId>
+      <artifactId>jakarta.ejb-api</artifactId>
     </dependency>
     <dependency>
-      <groupId>javax.enterprise</groupId>
-      <artifactId>cdi-api</artifactId>
+      <groupId>jakarta.enterprise</groupId>
+      <artifactId>jakarta.enterprise.cdi-api</artifactId>
     </dependency>
     <dependency>
-      <groupId>javax.annotation</groupId>
-      <artifactId>javax.annotation-api</artifactId>
-      <version>1.3.2</version>
+      <groupId>jakarta.annotation</groupId>
+      <artifactId>jakarta.annotation-api</artifactId>
     </dependency>
     <dependency>
       <groupId>org.apache.directory.scim</groupId>
diff --git a/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/configuration/ServerConfiguration.java b/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/configuration/ServerConfiguration.java
index a653358..41445f1 100644
--- a/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/configuration/ServerConfiguration.java
+++ b/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/configuration/ServerConfiguration.java
@@ -23,8 +23,8 @@ import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Named;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Named;
 
 import lombok.AccessLevel;
 import lombok.Data;
diff --git a/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/exception/FilterParseExceptionMapper.java b/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/exception/FilterParseExceptionMapper.java
index e8b4565..c4bd212 100644
--- a/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/exception/FilterParseExceptionMapper.java
+++ b/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/exception/FilterParseExceptionMapper.java
@@ -19,9 +19,9 @@
 
 package org.apache.directory.scim.server.exception;
 
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.Response.Status;
-import javax.ws.rs.ext.ExceptionMapper;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response.Status;
+import jakarta.ws.rs.ext.ExceptionMapper;
 
 import org.apache.directory.scim.spec.protocol.ErrorMessageType;
 import org.apache.directory.scim.spec.protocol.data.ErrorResponse;
diff --git a/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/exception/ScimServerException.java b/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/exception/ScimServerException.java
index e42cd8e..d9f6774 100644
--- a/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/exception/ScimServerException.java
+++ b/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/exception/ScimServerException.java
@@ -19,7 +19,7 @@
 
 package org.apache.directory.scim.server.exception;
 
-import javax.ws.rs.core.Response.Status;
+import jakarta.ws.rs.core.Response.Status;
 
 import org.apache.directory.scim.spec.protocol.ErrorMessageType;
 import org.apache.directory.scim.spec.protocol.data.ErrorResponse;
diff --git a/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/exception/UnableToCreateResourceException.java b/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/exception/UnableToCreateResourceException.java
index d88b618..33b58d2 100644
--- a/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/exception/UnableToCreateResourceException.java
+++ b/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/exception/UnableToCreateResourceException.java
@@ -19,7 +19,7 @@
 
 package org.apache.directory.scim.server.exception;
 
-import javax.ws.rs.core.Response.Status;
+import jakarta.ws.rs.core.Response.Status;
 
 import lombok.Data;
 import lombok.EqualsAndHashCode;
diff --git a/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/exception/UnableToDeleteResourceException.java b/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/exception/UnableToDeleteResourceException.java
index 744ead3..34cac25 100644
--- a/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/exception/UnableToDeleteResourceException.java
+++ b/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/exception/UnableToDeleteResourceException.java
@@ -19,7 +19,7 @@
 
 package org.apache.directory.scim.server.exception;
 
-import javax.ws.rs.core.Response.Status;
+import jakarta.ws.rs.core.Response.Status;
 
 import lombok.Data;
 import lombok.EqualsAndHashCode;
diff --git a/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/exception/UnableToResolveIdException.java b/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/exception/UnableToResolveIdException.java
index f2e18d1..a347029 100644
--- a/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/exception/UnableToResolveIdException.java
+++ b/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/exception/UnableToResolveIdException.java
@@ -19,7 +19,7 @@
 
 package org.apache.directory.scim.server.exception;
 
-import javax.ws.rs.core.Response.Status;
+import jakarta.ws.rs.core.Response.Status;
 
 import lombok.Data;
 import lombok.EqualsAndHashCode;
diff --git a/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/exception/UnableToRetrieveExtensionsException.java b/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/exception/UnableToRetrieveExtensionsException.java
index dabe27d..c89110d 100644
--- a/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/exception/UnableToRetrieveExtensionsException.java
+++ b/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/exception/UnableToRetrieveExtensionsException.java
@@ -19,7 +19,7 @@
 
 package org.apache.directory.scim.server.exception;
 
-import javax.ws.rs.core.Response.Status;
+import jakarta.ws.rs.core.Response.Status;
 
 import lombok.Data;
 import lombok.EqualsAndHashCode;
diff --git a/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/exception/UnableToRetrieveResourceException.java b/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/exception/UnableToRetrieveResourceException.java
index 66ca9f3..5685381 100644
--- a/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/exception/UnableToRetrieveResourceException.java
+++ b/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/exception/UnableToRetrieveResourceException.java
@@ -19,7 +19,7 @@
 
 package org.apache.directory.scim.server.exception;
 
-import javax.ws.rs.core.Response.Status;
+import jakarta.ws.rs.core.Response.Status;
 
 import lombok.Data;
 import lombok.EqualsAndHashCode;
diff --git a/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/exception/UnableToUpdateResourceException.java b/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/exception/UnableToUpdateResourceException.java
index f972ac8..589bee2 100644
--- a/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/exception/UnableToUpdateResourceException.java
+++ b/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/exception/UnableToUpdateResourceException.java
@@ -19,7 +19,7 @@
 
 package org.apache.directory.scim.server.exception;
 
-import javax.ws.rs.core.Response.Status;
+import jakarta.ws.rs.core.Response.Status;
 
 import lombok.Data;
 import lombok.EqualsAndHashCode;
diff --git a/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/filter/ApiOriginFilter.java b/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/filter/ApiOriginFilter.java
index 22604da..cf4b9b8 100644
--- a/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/filter/ApiOriginFilter.java
+++ b/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/filter/ApiOriginFilter.java
@@ -21,15 +21,16 @@ package org.apache.directory.scim.server.filter;
 
 import java.io.IOException;
 
-import javax.servlet.FilterChain;
-import javax.servlet.FilterConfig;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.http.HttpServletResponse;
+import jakarta.servlet.Filter;
+import jakarta.servlet.FilterChain;
+import jakarta.servlet.FilterConfig;
+import jakarta.servlet.ServletException;
+import jakarta.servlet.ServletRequest;
+import jakarta.servlet.ServletResponse;
+import jakarta.servlet.http.HttpServletResponse;
 
 //@WebFilter(filterName = "ScimCorsFilter", urlPatterns = {"/*"})
-public class ApiOriginFilter implements javax.servlet.Filter {
+public class ApiOriginFilter implements Filter {
 
     @Override
     public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
@@ -47,4 +48,4 @@ public class ApiOriginFilter implements javax.servlet.Filter {
     @Override
     public void destroy() {
     }
-}
\ No newline at end of file
+}
diff --git a/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/provider/Provider.java b/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/provider/Provider.java
index 383b58f..fc3496a 100644
--- a/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/provider/Provider.java
+++ b/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/provider/Provider.java
@@ -21,9 +21,9 @@ package org.apache.directory.scim.server.provider;
 
 import java.util.List;
 
-import javax.ws.rs.WebApplicationException;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.Response.Status;
+import jakarta.ws.rs.WebApplicationException;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response.Status;
 
 import org.apache.directory.scim.server.exception.UnableToCreateResourceException;
 import org.apache.directory.scim.server.exception.UnableToDeleteResourceException;
diff --git a/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/provider/ProviderRegistry.java b/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/provider/ProviderRegistry.java
index e388fb4..ddce62a 100644
--- a/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/provider/ProviderRegistry.java
+++ b/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/provider/ProviderRegistry.java
@@ -30,13 +30,13 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-import javax.ejb.Lock;
-import javax.ejb.LockType;
-import javax.ejb.Singleton;
-import javax.ejb.Startup;
-import javax.enterprise.inject.Instance;
-import javax.inject.Inject;
-import javax.xml.bind.annotation.XmlEnumValue;
+import jakarta.ejb.Lock;
+import jakarta.ejb.LockType;
+import jakarta.ejb.Singleton;
+import jakarta.ejb.Startup;
+import jakarta.enterprise.inject.Instance;
+import jakarta.inject.Inject;
+import jakarta.xml.bind.annotation.XmlEnumValue;
 
 import org.apache.directory.scim.common.ScimUtils;
 import org.apache.directory.scim.server.exception.InvalidProviderException;
diff --git a/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/provider/UpdateRequest.java b/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/provider/UpdateRequest.java
index 75e9d84..e1d8057 100644
--- a/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/provider/UpdateRequest.java
+++ b/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/provider/UpdateRequest.java
@@ -54,8 +54,8 @@ import org.apache.directory.scim.spec.schema.AttributeContainer;
 import org.apache.directory.scim.spec.schema.Schema;
 import org.apache.directory.scim.spec.schema.Schema.Attribute;
 
-import javax.inject.Inject;
-import javax.inject.Named;
+import jakarta.inject.Inject;
+import jakarta.inject.Named;
 import java.lang.reflect.Field;
 import java.util.ArrayList;
 import java.util.Arrays;
diff --git a/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/provider/extensions/exceptions/ClientFilterException.java b/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/provider/extensions/exceptions/ClientFilterException.java
index ff24fa8..7822dd0 100644
--- a/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/provider/extensions/exceptions/ClientFilterException.java
+++ b/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/provider/extensions/exceptions/ClientFilterException.java
@@ -19,7 +19,7 @@
 
 package org.apache.directory.scim.server.provider.extensions.exceptions;
 
-import javax.ws.rs.core.Response.Status;
+import jakarta.ws.rs.core.Response.Status;
 
 import lombok.Data;
 import lombok.EqualsAndHashCode;
diff --git a/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/rest/BaseResourceTypeResourceImpl.java b/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/rest/BaseResourceTypeResourceImpl.java
index 29b54c0..25b3422 100644
--- a/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/rest/BaseResourceTypeResourceImpl.java
+++ b/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/rest/BaseResourceTypeResourceImpl.java
@@ -29,18 +29,18 @@ import java.util.List;
 import java.util.Optional;
 import java.util.Set;
 
-import javax.enterprise.inject.Instance;
-import javax.enterprise.inject.spi.CDI;
-import javax.inject.Inject;
-import javax.servlet.http.HttpServletRequest;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.EntityTag;
-import javax.ws.rs.core.Request;
-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.Response.Status.Family;
-import javax.ws.rs.core.UriInfo;
+import jakarta.enterprise.inject.Instance;
+import jakarta.enterprise.inject.spi.CDI;
+import jakarta.inject.Inject;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.ws.rs.core.Context;
+import jakarta.ws.rs.core.EntityTag;
+import jakarta.ws.rs.core.Request;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response.ResponseBuilder;
+import jakarta.ws.rs.core.Response.Status;
+import jakarta.ws.rs.core.Response.Status.Family;
+import jakarta.ws.rs.core.UriInfo;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git a/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/rest/BulkResourceImpl.java b/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/rest/BulkResourceImpl.java
index 7aca970..a5aead2 100644
--- a/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/rest/BulkResourceImpl.java
+++ b/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/rest/BulkResourceImpl.java
@@ -30,13 +30,13 @@ import java.util.Map;
 import java.util.Set;
 import java.util.regex.Pattern;
 
-import javax.ejb.Stateless;
-import javax.enterprise.inject.Instance;
-import javax.enterprise.inject.spi.CDI;
-import javax.inject.Inject;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.Response.Status;
-import javax.ws.rs.core.UriInfo;
+import jakarta.ejb.Stateless;
+import jakarta.enterprise.inject.Instance;
+import jakarta.enterprise.inject.spi.CDI;
+import jakarta.inject.Inject;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response.Status;
+import jakarta.ws.rs.core.UriInfo;
 
 import org.apache.directory.scim.server.exception.UnableToCreateResourceException;
 import org.apache.directory.scim.server.exception.UnableToDeleteResourceException;
diff --git a/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/rest/GroupResourceImpl.java b/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/rest/GroupResourceImpl.java
index 77e882d..828e167 100644
--- a/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/rest/GroupResourceImpl.java
+++ b/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/rest/GroupResourceImpl.java
@@ -22,10 +22,10 @@
  */
 package org.apache.directory.scim.server.rest;
 
-import javax.ejb.Stateless;
-import javax.enterprise.inject.Instance;
-import javax.enterprise.inject.spi.CDI;
-import javax.enterprise.util.TypeLiteral;
+import jakarta.ejb.Stateless;
+import jakarta.enterprise.inject.Instance;
+import jakarta.enterprise.inject.spi.CDI;
+import jakarta.enterprise.util.TypeLiteral;
 
 import org.apache.directory.scim.server.provider.Provider;
 import org.apache.directory.scim.spec.protocol.GroupResource;
diff --git a/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/rest/ObjectMapperContextResolver.java b/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/rest/ObjectMapperContextResolver.java
index 2412e7d..8e375c2 100644
--- a/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/rest/ObjectMapperContextResolver.java
+++ b/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/rest/ObjectMapperContextResolver.java
@@ -19,15 +19,15 @@
 
 package org.apache.directory.scim.server.rest;
 
-import javax.inject.Inject;
-import javax.ws.rs.ext.ContextResolver;
+import jakarta.inject.Inject;
+import jakarta.ws.rs.ext.ContextResolver;
 
 import com.fasterxml.jackson.databind.ObjectMapper;
 
 import org.apache.directory.scim.server.schema.Registry;
 
 /**
- * @deprecated Use {@link ScimJacksonJaxbJsonProvider} instead.
+ * @deprecated Use {@link ScimJacksonXmlBindJsonProvider} instead.
  */
 @Deprecated
 public class ObjectMapperContextResolver implements ContextResolver<ObjectMapper> {
diff --git a/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/rest/ObjectMapperFactory.java b/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/rest/ObjectMapperFactory.java
index 0266f7b..db884bb 100644
--- a/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/rest/ObjectMapperFactory.java
+++ b/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/rest/ObjectMapperFactory.java
@@ -26,9 +26,9 @@ import com.fasterxml.jackson.databind.module.SimpleModule;
 import org.apache.directory.scim.server.schema.Registry;
 import org.apache.directory.scim.spec.resources.ScimResource;
 
-import javax.enterprise.inject.Produces;
-import javax.inject.Inject;
-import javax.ws.rs.ext.Provider;
+import jakarta.enterprise.inject.Produces;
+import jakarta.inject.Inject;
+import jakarta.ws.rs.ext.Provider;
 
 /**
  * Creates and configures an {@link ObjectMapper} used for {@code application/scim+json} parsing.
diff --git a/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/rest/ResourceTypesResourceImpl.java b/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/rest/ResourceTypesResourceImpl.java
index f30f0e8..5e64da5 100644
--- a/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/rest/ResourceTypesResourceImpl.java
+++ b/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/rest/ResourceTypesResourceImpl.java
@@ -23,12 +23,12 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
 
-import javax.ejb.Stateless;
-import javax.inject.Inject;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.Response.Status;
-import javax.ws.rs.core.UriInfo;
+import jakarta.ejb.Stateless;
+import jakarta.inject.Inject;
+import jakarta.ws.rs.core.Context;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response.Status;
+import jakarta.ws.rs.core.UriInfo;
 
 import org.apache.directory.scim.server.schema.Registry;
 import org.apache.directory.scim.spec.protocol.ResourceTypesResource;
diff --git a/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/rest/SchemaResourceImpl.java b/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/rest/SchemaResourceImpl.java
index 5aa9d88..e6b9de0 100644
--- a/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/rest/SchemaResourceImpl.java
+++ b/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/rest/SchemaResourceImpl.java
@@ -23,12 +23,12 @@ import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
 
-import javax.ejb.Stateless;
-import javax.inject.Inject;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.Response.Status;
-import javax.ws.rs.core.UriInfo;
+import jakarta.ejb.Stateless;
+import jakarta.inject.Inject;
+import jakarta.ws.rs.core.Context;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response.Status;
+import jakarta.ws.rs.core.UriInfo;
 
 import org.apache.directory.scim.server.schema.Registry;
 import org.apache.directory.scim.spec.protocol.SchemaResource;
diff --git a/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/rest/ScimJacksonJaxbJsonProvider.java b/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/rest/ScimJacksonXmlBindJsonProvider.java
similarity index 77%
rename from scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/rest/ScimJacksonJaxbJsonProvider.java
rename to scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/rest/ScimJacksonXmlBindJsonProvider.java
index 421191d..6844070 100644
--- a/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/rest/ScimJacksonJaxbJsonProvider.java
+++ b/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/rest/ScimJacksonXmlBindJsonProvider.java
@@ -20,13 +20,13 @@
 package org.apache.directory.scim.server.rest;
 
 import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider;
+import com.fasterxml.jackson.jakarta.rs.json.JacksonXmlBindJsonProvider;
 import org.apache.directory.scim.spec.protocol.Constants;
 
-import javax.inject.Inject;
-import javax.ws.rs.Consumes;
-import javax.ws.rs.Produces;
-import javax.ws.rs.ext.Provider;
+import jakarta.inject.Inject;
+import jakarta.ws.rs.Consumes;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.ext.Provider;
 
 /**
  * Adds JacksonJaxbJsonProvider for custom MediaType {@code application/scim+json}.
@@ -34,10 +34,10 @@ import javax.ws.rs.ext.Provider;
 @Provider
 @Consumes(Constants.SCIM_CONTENT_TYPE)
 @Produces(Constants.SCIM_CONTENT_TYPE)
-public class ScimJacksonJaxbJsonProvider extends JacksonJaxbJsonProvider {
+public class ScimJacksonXmlBindJsonProvider extends JacksonXmlBindJsonProvider {
 
   @Inject
-  public ScimJacksonJaxbJsonProvider(ObjectMapper objectMapper) {
+  public ScimJacksonXmlBindJsonProvider(ObjectMapper objectMapper) {
     super(objectMapper, DEFAULT_ANNOTATIONS);
   }
 }
diff --git a/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/rest/ScimResourceHelper.java b/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/rest/ScimResourceHelper.java
index 0e09681..dc01c7b 100644
--- a/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/rest/ScimResourceHelper.java
+++ b/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/rest/ScimResourceHelper.java
@@ -58,7 +58,7 @@ public final class ScimResourceHelper {
     clazzez.add(FilterParseExceptionMapper.class);
 
     // handle MediaType of application/scim+json
-    clazzez.add(ScimJacksonJaxbJsonProvider.class);
+    clazzez.add(ScimJacksonXmlBindJsonProvider.class);
 
     return clazzez;
   }
diff --git a/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/rest/SelfResourceImpl.java b/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/rest/SelfResourceImpl.java
index 00b3b78..11d0090 100644
--- a/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/rest/SelfResourceImpl.java
+++ b/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/rest/SelfResourceImpl.java
@@ -21,13 +21,13 @@ package org.apache.directory.scim.server.rest;
 
 import java.security.Principal;
 
-import javax.annotation.Resource;
-import javax.ejb.SessionContext;
-import javax.ejb.Stateless;
-import javax.enterprise.inject.Instance;
-import javax.inject.Inject;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.Response.Status;
+import jakarta.annotation.Resource;
+import jakarta.ejb.SessionContext;
+import jakarta.ejb.Stateless;
+import jakarta.enterprise.inject.Instance;
+import jakarta.inject.Inject;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response.Status;
 
 import org.apache.directory.scim.server.exception.UnableToResolveIdException;
 import org.apache.directory.scim.server.provider.SelfIdResolver;
diff --git a/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/rest/ServiceProviderConfigResourceImpl.java b/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/rest/ServiceProviderConfigResourceImpl.java
index d442424..936d890 100644
--- a/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/rest/ServiceProviderConfigResourceImpl.java
+++ b/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/rest/ServiceProviderConfigResourceImpl.java
@@ -24,12 +24,12 @@ import java.security.NoSuchAlgorithmException;
 import java.time.LocalDateTime;
 import java.util.List;
 
-import javax.ejb.Stateless;
-import javax.inject.Inject;
-import javax.ws.rs.core.EntityTag;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.UriInfo;
-import javax.ws.rs.core.Response.Status;
+import jakarta.ejb.Stateless;
+import jakarta.inject.Inject;
+import jakarta.ws.rs.core.EntityTag;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.core.UriInfo;
+import jakarta.ws.rs.core.Response.Status;
 
 import com.fasterxml.jackson.core.JsonProcessingException;
 
diff --git a/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/rest/UserResourceImpl.java b/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/rest/UserResourceImpl.java
index 6b319b3..88b9525 100644
--- a/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/rest/UserResourceImpl.java
+++ b/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/rest/UserResourceImpl.java
@@ -22,11 +22,11 @@
  */
 package org.apache.directory.scim.server.rest;
 
-import javax.ejb.Stateless;
-import javax.enterprise.inject.Instance;
-import javax.enterprise.inject.spi.CDI;
-import javax.enterprise.util.TypeLiteral;
-import javax.inject.Inject;
+import jakarta.ejb.Stateless;
+import jakarta.enterprise.inject.Instance;
+import jakarta.enterprise.inject.spi.CDI;
+import jakarta.enterprise.util.TypeLiteral;
+import jakarta.inject.Inject;
 
 import org.apache.directory.scim.server.provider.Provider;
 import org.apache.directory.scim.server.provider.ProviderRegistry;
diff --git a/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/rest/WebApplicationExceptionMapper.java b/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/rest/WebApplicationExceptionMapper.java
index bf0af08..4169c2e 100644
--- a/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/rest/WebApplicationExceptionMapper.java
+++ b/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/rest/WebApplicationExceptionMapper.java
@@ -19,15 +19,15 @@
 
 package org.apache.directory.scim.server.rest;
 
-import javax.enterprise.inject.Specializes;
-import javax.ws.rs.Produces;
-import javax.ws.rs.WebApplicationException;
-import javax.ws.rs.core.HttpHeaders;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.Response.Status;
-import javax.ws.rs.ext.ExceptionMapper;
-import javax.ws.rs.ext.Provider;
+import jakarta.enterprise.inject.Specializes;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.WebApplicationException;
+import jakarta.ws.rs.core.HttpHeaders;
+import jakarta.ws.rs.core.MediaType;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response.Status;
+import jakarta.ws.rs.ext.ExceptionMapper;
+import jakarta.ws.rs.ext.Provider;
 
 import org.apache.directory.scim.spec.protocol.Constants;
 import org.apache.directory.scim.spec.protocol.data.ErrorResponse;
diff --git a/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/schema/Registry.java b/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/schema/Registry.java
index 5bc9543..a3a7697 100644
--- a/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/schema/Registry.java
+++ b/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/schema/Registry.java
@@ -25,8 +25,8 @@ import java.util.HashMap;
 import java.util.Map;
 import java.util.Set;
 
-import javax.ejb.Singleton;
-import javax.ejb.Startup;
+import jakarta.ejb.Singleton;
+import jakarta.ejb.Startup;
 
 import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
diff --git a/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/schema/ScimExtensionRegistryProducer.java b/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/schema/ScimExtensionRegistryProducer.java
index fed83c0..5c564e9 100644
--- a/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/schema/ScimExtensionRegistryProducer.java
+++ b/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/schema/ScimExtensionRegistryProducer.java
@@ -19,7 +19,7 @@
 
 package org.apache.directory.scim.server.schema;
 
-import javax.enterprise.inject.Produces;
+import jakarta.enterprise.inject.Produces;
 
 import org.apache.directory.scim.spec.extension.ScimExtensionRegistry;
 
diff --git a/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/utility/AttributeUtil.java b/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/utility/AttributeUtil.java
index 0cb9295..2f27465 100644
--- a/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/utility/AttributeUtil.java
+++ b/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/utility/AttributeUtil.java
@@ -40,9 +40,9 @@ import org.apache.directory.scim.spec.schema.Schema.Attribute;
 import org.apache.directory.scim.spec.schema.Schema.Attribute.Returned;
 import org.apache.directory.scim.spec.schema.Schema.Attribute.Type;
 
-import javax.annotation.PostConstruct;
-import javax.ejb.Stateless;
-import javax.inject.Inject;
+import jakarta.annotation.PostConstruct;
+import jakarta.ejb.Stateless;
+import jakarta.inject.Inject;
 import java.io.ByteArrayInputStream;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
diff --git a/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/utility/EndpointUtil.java b/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/utility/EndpointUtil.java
index 483e073..3caf009 100644
--- a/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/utility/EndpointUtil.java
+++ b/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/utility/EndpointUtil.java
@@ -21,9 +21,9 @@ package org.apache.directory.scim.server.utility;
 
 import java.net.URI;
 
-import javax.enterprise.context.RequestScoped;
-import javax.ws.rs.core.UriBuilder;
-import javax.ws.rs.core.UriInfo;
+import jakarta.enterprise.context.RequestScoped;
+import jakarta.ws.rs.core.UriBuilder;
+import jakarta.ws.rs.core.UriInfo;
 
 import org.apache.directory.scim.spec.annotation.ScimResourceType;
 import org.apache.directory.scim.spec.exception.InvalidScimResourceException;
diff --git a/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/utility/EtagGenerator.java b/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/utility/EtagGenerator.java
index c032a69..b198d34 100644
--- a/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/utility/EtagGenerator.java
+++ b/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/utility/EtagGenerator.java
@@ -27,8 +27,8 @@ import org.apache.directory.scim.spec.json.ObjectMapperFactory;
 import org.apache.directory.scim.spec.resources.ScimResource;
 import org.apache.directory.scim.spec.schema.Meta;
 
-import javax.ejb.Stateless;
-import javax.ws.rs.core.EntityTag;
+import jakarta.ejb.Stateless;
+import jakarta.ws.rs.core.EntityTag;
 import java.io.UnsupportedEncodingException;
 import java.nio.charset.StandardCharsets;
 import java.security.MessageDigest;
diff --git a/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/utility/UriUtilities.java b/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/utility/UriUtilities.java
index e3b0148..e92dfef 100644
--- a/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/utility/UriUtilities.java
+++ b/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/utility/UriUtilities.java
@@ -23,8 +23,8 @@ import java.net.MalformedURLException;
 import java.net.URI;
 import java.net.URL;
 
-import javax.ws.rs.core.UriBuilder;
-import javax.ws.rs.core.UriInfo;
+import jakarta.ws.rs.core.UriBuilder;
+import jakarta.ws.rs.core.UriInfo;
 
 public final class UriUtilities
 {
diff --git a/scim-server/scim-server-common/src/test/java/org/apache/directory/scim/server/provider/ProviderRegistryTest.java b/scim-server/scim-server-common/src/test/java/org/apache/directory/scim/server/provider/ProviderRegistryTest.java
index 190443c..06a4be9 100644
--- a/scim-server/scim-server-common/src/test/java/org/apache/directory/scim/server/provider/ProviderRegistryTest.java
+++ b/scim-server/scim-server-common/src/test/java/org/apache/directory/scim/server/provider/ProviderRegistryTest.java
@@ -21,7 +21,7 @@ package org.apache.directory.scim.server.provider;
 
 import static org.assertj.core.api.Assertions.assertThat;
 
-import javax.enterprise.inject.Instance;
+import jakarta.enterprise.inject.Instance;
 
 import org.apache.directory.scim.server.schema.Registry;
 import org.apache.directory.scim.spec.resources.ScimUser;
diff --git a/scim-server/scim-server-common/src/test/java/org/apache/directory/scim/server/provider/ProviderTest.java b/scim-server/scim-server-common/src/test/java/org/apache/directory/scim/server/provider/ProviderTest.java
index a8a104a..e884b1f 100644
--- a/scim-server/scim-server-common/src/test/java/org/apache/directory/scim/server/provider/ProviderTest.java
+++ b/scim-server/scim-server-common/src/test/java/org/apache/directory/scim/server/provider/ProviderTest.java
@@ -27,8 +27,8 @@ import org.apache.directory.scim.spec.resources.ScimExtension;
 import org.apache.directory.scim.spec.resources.ScimResource;
 import org.junit.jupiter.api.Test;
 
-import javax.ws.rs.WebApplicationException;
-import javax.ws.rs.core.Response;
+import jakarta.ws.rs.WebApplicationException;
+import jakarta.ws.rs.core.Response;
 import java.util.List;
 
 import static org.hamcrest.MatcherAssert.assertThat;
diff --git a/scim-server/scim-server-common/src/test/java/org/apache/directory/scim/server/provider/UpdateRequestTest.java b/scim-server/scim-server-common/src/test/java/org/apache/directory/scim/server/provider/UpdateRequestTest.java
index 107527e..da02311 100644
--- a/scim-server/scim-server-common/src/test/java/org/apache/directory/scim/server/provider/UpdateRequestTest.java
+++ b/scim-server/scim-server-common/src/test/java/org/apache/directory/scim/server/provider/UpdateRequestTest.java
@@ -31,7 +31,7 @@ import java.util.List;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
 
-import javax.enterprise.inject.Instance;
+import jakarta.enterprise.inject.Instance;
 
 import org.apache.directory.scim.server.rest.ObjectMapperFactory;
 import org.apache.directory.scim.server.schema.Registry;
diff --git a/scim-server/scim-server-common/src/test/java/org/apache/directory/scim/server/rest/BaseResourceTypeResourceImplTest.java b/scim-server/scim-server-common/src/test/java/org/apache/directory/scim/server/rest/BaseResourceTypeResourceImplTest.java
index 9b9ac2d..04ab4ac 100644
--- a/scim-server/scim-server-common/src/test/java/org/apache/directory/scim/server/rest/BaseResourceTypeResourceImplTest.java
+++ b/scim-server/scim-server-common/src/test/java/org/apache/directory/scim/server/rest/BaseResourceTypeResourceImplTest.java
@@ -28,9 +28,9 @@ import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 
-import javax.servlet.http.HttpServletRequest;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.Response.Status;
+import jakarta.servlet.http.HttpServletRequest;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response.Status;
 
 import org.junit.jupiter.api.Test;
 import org.junit.jupiter.api.extension.ExtendWith;
diff --git a/scim-server/scim-server-common/src/test/java/org/apache/directory/scim/server/rest/SelfResourceImplTest.java b/scim-server/scim-server-common/src/test/java/org/apache/directory/scim/server/rest/SelfResourceImplTest.java
index e71ec5c..c7734fe 100644
--- a/scim-server/scim-server-common/src/test/java/org/apache/directory/scim/server/rest/SelfResourceImplTest.java
+++ b/scim-server/scim-server-common/src/test/java/org/apache/directory/scim/server/rest/SelfResourceImplTest.java
@@ -29,9 +29,9 @@ import static org.mockito.Mockito.when;
 import java.security.Principal;
 import java.util.List;
 
-import javax.ejb.SessionContext;
-import javax.enterprise.inject.Instance;
-import javax.ws.rs.core.Response;
+import jakarta.ejb.SessionContext;
+import jakarta.enterprise.inject.Instance;
+import jakarta.ws.rs.core.Response;
 
 import org.apache.directory.scim.server.exception.UnableToResolveIdException;
 import org.apache.directory.scim.server.provider.SelfIdResolver;
diff --git a/scim-server/scim-server-common/src/test/java/org/apache/directory/scim/server/utility/ExampleObjectExtension.java b/scim-server/scim-server-common/src/test/java/org/apache/directory/scim/server/utility/ExampleObjectExtension.java
index 9c482ba..68d68ef 100644
--- a/scim-server/scim-server-common/src/test/java/org/apache/directory/scim/server/utility/ExampleObjectExtension.java
+++ b/scim-server/scim-server-common/src/test/java/org/apache/directory/scim/server/utility/ExampleObjectExtension.java
@@ -22,11 +22,11 @@ package org.apache.directory.scim.server.utility;
 import java.io.Serializable;
 import java.util.List;
 
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlType;
 
 import lombok.Data;
 import org.apache.directory.scim.spec.annotation.ScimAttribute;
diff --git a/scim-server/scim-server-common/src/test/java/org/apache/directory/scim/server/utility/Subobject.java b/scim-server/scim-server-common/src/test/java/org/apache/directory/scim/server/utility/Subobject.java
index dc9392b..1b469e5 100644
--- a/scim-server/scim-server-common/src/test/java/org/apache/directory/scim/server/utility/Subobject.java
+++ b/scim-server/scim-server-common/src/test/java/org/apache/directory/scim/server/utility/Subobject.java
@@ -22,7 +22,7 @@ package org.apache.directory.scim.server.utility;
 import java.io.Serializable;
 import java.util.List;
 
-import javax.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlElement;
 
 import org.apache.directory.scim.spec.annotation.ScimAttribute;
 import lombok.Data;
diff --git a/scim-server/scim-server-example/scim-server-memory/pom.xml b/scim-server/scim-server-example/scim-server-memory/pom.xml
index be89132..0c280a4 100644
--- a/scim-server/scim-server-example/scim-server-memory/pom.xml
+++ b/scim-server/scim-server-example/scim-server-memory/pom.xml
@@ -29,9 +29,8 @@
 
   <dependencies>
     <dependency>
-      <groupId>javax.ws.rs</groupId>
-      <artifactId>javax.ws.rs-api</artifactId>
-      <version>2.1</version>
+      <groupId>jakarta.ws.rs</groupId>
+      <artifactId>jakarta.ws.rs-api</artifactId>
     </dependency>
     <dependency>
       <groupId>org.apache.directory.scim</groupId>
diff --git a/scim-server/scim-server-example/scim-server-memory/src/main/java/org/apache/directory/scim/example/memory/extensions/LuckyNumberExtension.java b/scim-server/scim-server-example/scim-server-memory/src/main/java/org/apache/directory/scim/example/memory/extensions/LuckyNumberExtension.java
index c82af27..c9bbf56 100644
--- a/scim-server/scim-server-example/scim-server-memory/src/main/java/org/apache/directory/scim/example/memory/extensions/LuckyNumberExtension.java
+++ b/scim-server/scim-server-example/scim-server-memory/src/main/java/org/apache/directory/scim/example/memory/extensions/LuckyNumberExtension.java
@@ -19,10 +19,10 @@
 
 package org.apache.directory.scim.example.memory.extensions;
 
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlRootElement;
 
 import lombok.Data;
 import org.apache.directory.scim.spec.annotation.ScimAttribute;
diff --git a/scim-server/scim-server-example/scim-server-memory/src/main/java/org/apache/directory/scim/example/memory/rest/RestApplication.java b/scim-server/scim-server-example/scim-server-memory/src/main/java/org/apache/directory/scim/example/memory/rest/RestApplication.java
index 625ee20..b75ed11 100644
--- a/scim-server/scim-server-example/scim-server-memory/src/main/java/org/apache/directory/scim/example/memory/rest/RestApplication.java
+++ b/scim-server/scim-server-example/scim-server-memory/src/main/java/org/apache/directory/scim/example/memory/rest/RestApplication.java
@@ -24,8 +24,8 @@ import org.apache.directory.scim.server.rest.ScimResourceHelper;
 import java.util.HashSet;
 import java.util.Set;
 
-import javax.ws.rs.ApplicationPath;
-import javax.ws.rs.core.Application;
+import jakarta.ws.rs.ApplicationPath;
+import jakarta.ws.rs.core.Application;
 
 @ApplicationPath("v2")
 public class RestApplication extends Application {
diff --git a/scim-server/scim-server-example/scim-server-memory/src/main/java/org/apache/directory/scim/example/memory/rest/SwaggerJaxrsConfig.java b/scim-server/scim-server-example/scim-server-memory/src/main/java/org/apache/directory/scim/example/memory/rest/SwaggerJaxrsConfig.java
index 66df243..d29fbdc 100644
--- a/scim-server/scim-server-example/scim-server-memory/src/main/java/org/apache/directory/scim/example/memory/rest/SwaggerJaxrsConfig.java
+++ b/scim-server/scim-server-example/scim-server-memory/src/main/java/org/apache/directory/scim/example/memory/rest/SwaggerJaxrsConfig.java
@@ -19,20 +19,19 @@
 
 package org.apache.directory.scim.example.memory.rest;
 
+import com.fasterxml.jackson.module.jakarta.xmlbind.JakartaXmlBindAnnotationModule;
 import io.swagger.jaxrs.config.BeanConfig;
 import io.swagger.util.Json;
 import io.swagger.util.Yaml;
 
-import javax.servlet.ServletContextEvent;
-import javax.servlet.ServletContextListener;
-import javax.servlet.annotation.WebListener;
+import jakarta.servlet.ServletContextEvent;
+import jakarta.servlet.ServletContextListener;
+import jakarta.servlet.annotation.WebListener;
 
 import org.apache.directory.scim.server.rest.ScimResourceHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import com.fasterxml.jackson.module.jaxb.JaxbAnnotationModule;
-
 @WebListener
 public class SwaggerJaxrsConfig implements ServletContextListener {
 
@@ -52,8 +51,8 @@ public class SwaggerJaxrsConfig implements ServletContextListener {
       beanConfig.setDescription("In Memory SCIM Server Example Implementation");
       beanConfig.setVersion("2.0");
 
-      Json.mapper().registerModule(new JaxbAnnotationModule());
-      Yaml.mapper().registerModule(new JaxbAnnotationModule());
+      Json.mapper().registerModule(new JakartaXmlBindAnnotationModule());
+      Yaml.mapper().registerModule(new JakartaXmlBindAnnotationModule());
 
     } catch (Exception e) {
       LOGGER.error("Error initializing swagger", e);
diff --git a/scim-server/scim-server-example/scim-server-memory/src/main/java/org/apache/directory/scim/example/memory/service/InMemoryGroupService.java b/scim-server/scim-server-example/scim-server-memory/src/main/java/org/apache/directory/scim/example/memory/service/InMemoryGroupService.java
index b39d0d7..85126af 100644
--- a/scim-server/scim-server-example/scim-server-memory/src/main/java/org/apache/directory/scim/example/memory/service/InMemoryGroupService.java
+++ b/scim-server/scim-server-example/scim-server-memory/src/main/java/org/apache/directory/scim/example/memory/service/InMemoryGroupService.java
@@ -34,8 +34,8 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Named;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Named;
 
 @Named
 @ApplicationScoped
diff --git a/scim-server/scim-server-example/scim-server-memory/src/main/java/org/apache/directory/scim/example/memory/service/InMemorySelfResolverImpl.java b/scim-server/scim-server-example/scim-server-memory/src/main/java/org/apache/directory/scim/example/memory/service/InMemorySelfResolverImpl.java
index cbdf4db..0322298 100644
--- a/scim-server/scim-server-example/scim-server-memory/src/main/java/org/apache/directory/scim/example/memory/service/InMemorySelfResolverImpl.java
+++ b/scim-server/scim-server-example/scim-server-memory/src/main/java/org/apache/directory/scim/example/memory/service/InMemorySelfResolverImpl.java
@@ -24,8 +24,8 @@ import org.apache.directory.scim.server.provider.SelfIdResolver;
 
 import java.security.Principal;
 
-import javax.ejb.Stateless;
-import javax.ws.rs.core.Response.Status;
+import jakarta.ejb.Stateless;
+import jakarta.ws.rs.core.Response.Status;
 
 @Stateless
 public class InMemorySelfResolverImpl implements SelfIdResolver {
diff --git a/scim-server/scim-server-example/scim-server-memory/src/main/java/org/apache/directory/scim/example/memory/service/InMemoryUserService.java b/scim-server/scim-server-example/scim-server-memory/src/main/java/org/apache/directory/scim/example/memory/service/InMemoryUserService.java
index a8479e6..58f133f 100644
--- a/scim-server/scim-server-example/scim-server-memory/src/main/java/org/apache/directory/scim/example/memory/service/InMemoryUserService.java
+++ b/scim-server/scim-server-example/scim-server-memory/src/main/java/org/apache/directory/scim/example/memory/service/InMemoryUserService.java
@@ -24,9 +24,9 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
-import javax.annotation.PostConstruct;
-import javax.enterprise.context.ApplicationScoped;
-import javax.inject.Named;
+import jakarta.annotation.PostConstruct;
+import jakarta.enterprise.context.ApplicationScoped;
+import jakarta.inject.Named;
 
 import org.apache.directory.scim.example.memory.extensions.LuckyNumberExtension;
 import org.apache.directory.scim.server.exception.UnableToUpdateResourceException;
diff --git a/scim-server/scim-server-example/scim-server-memory/src/main/java/org/apache/directory/scim/example/memory/service/ScimConfigurator.java b/scim-server/scim-server-example/scim-server-memory/src/main/java/org/apache/directory/scim/example/memory/service/ScimConfigurator.java
index f8fe3d4..6d4633b 100644
--- a/scim-server/scim-server-example/scim-server-memory/src/main/java/org/apache/directory/scim/example/memory/service/ScimConfigurator.java
+++ b/scim-server/scim-server-example/scim-server-memory/src/main/java/org/apache/directory/scim/example/memory/service/ScimConfigurator.java
@@ -19,11 +19,11 @@
 
 package org.apache.directory.scim.example.memory.service;
 
-import javax.enterprise.inject.Instance;
-import javax.inject.Inject;
-import javax.servlet.ServletContextEvent;
-import javax.servlet.ServletContextListener;
-import javax.servlet.annotation.WebListener;
+import jakarta.enterprise.inject.Instance;
+import jakarta.inject.Inject;
+import jakarta.servlet.ServletContextEvent;
+import jakarta.servlet.ServletContextListener;
+import jakarta.servlet.annotation.WebListener;
 
 import org.apache.directory.scim.server.exception.InvalidProviderException;
 import org.apache.directory.scim.server.exception.UnableToRetrieveExtensionsException;
diff --git a/scim-spec/scim-spec-protocol/pom.xml b/scim-spec/scim-spec-protocol/pom.xml
index 776be7c..b78865f 100644
--- a/scim-spec/scim-spec-protocol/pom.xml
+++ b/scim-spec/scim-spec-protocol/pom.xml
@@ -31,8 +31,8 @@
 
 	<dependencies>
 		<dependency>
-      <groupId>javax.ws.rs</groupId>
-      <artifactId>javax.ws.rs-api</artifactId>
+      <groupId>jakarta.ws.rs</groupId>
+      <artifactId>jakarta.ws.rs-api</artifactId>
     </dependency>
 		<dependency>
 			<groupId>io.swagger</groupId>
diff --git a/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/adapter/AttributeReferenceAdapter.java b/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/adapter/AttributeReferenceAdapter.java
index 2d12575..43876a6 100644
--- a/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/adapter/AttributeReferenceAdapter.java
+++ b/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/adapter/AttributeReferenceAdapter.java
@@ -19,7 +19,7 @@
 
 package org.apache.directory.scim.spec.adapter;
 
-import javax.xml.bind.annotation.adapters.XmlAdapter;
+import jakarta.xml.bind.annotation.adapters.XmlAdapter;
 
 import org.apache.directory.scim.spec.protocol.attribute.AttributeReference;
 
diff --git a/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/adapter/FilterAdapter.java b/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/adapter/FilterAdapter.java
index e9dc0d2..3da65ef 100644
--- a/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/adapter/FilterAdapter.java
+++ b/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/adapter/FilterAdapter.java
@@ -19,7 +19,7 @@
 
 package org.apache.directory.scim.spec.adapter;
 
-import javax.xml.bind.annotation.adapters.XmlAdapter;
+import jakarta.xml.bind.annotation.adapters.XmlAdapter;
 
 import org.apache.directory.scim.spec.protocol.search.Filter;
 import lombok.extern.slf4j.Slf4j;
diff --git a/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/adapter/FilterWrapper.java b/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/adapter/FilterWrapper.java
index 6619a2b..6cd2e30 100644
--- a/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/adapter/FilterWrapper.java
+++ b/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/adapter/FilterWrapper.java
@@ -19,9 +19,9 @@
 
 package org.apache.directory.scim.spec.adapter;
 
-import javax.ws.rs.WebApplicationException;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.Response.Status;
+import jakarta.ws.rs.WebApplicationException;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response.Status;
 
 import org.apache.directory.scim.spec.protocol.ErrorMessageType;
 import org.apache.directory.scim.spec.protocol.data.ErrorResponse;
diff --git a/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/BaseResourceTypeResource.java b/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/BaseResourceTypeResource.java
index 5d675e1..6f0530b 100644
--- a/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/BaseResourceTypeResource.java
+++ b/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/BaseResourceTypeResource.java
@@ -19,18 +19,18 @@
 
 package org.apache.directory.scim.spec.protocol;
 
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-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.MediaType;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.Response.Status;
+import jakarta.ws.rs.Consumes;
+import jakarta.ws.rs.DELETE;
+import jakarta.ws.rs.GET;
+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.MediaType;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response.Status;
 
 import org.apache.directory.scim.spec.adapter.FilterWrapper;
 import org.apache.directory.scim.spec.protocol.attribute.AttributeReference;
diff --git a/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/BulkResource.java b/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/BulkResource.java
index f6bfe92..140861a 100644
--- a/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/BulkResource.java
+++ b/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/BulkResource.java
@@ -19,15 +19,15 @@
 
 package org.apache.directory.scim.spec.protocol;
 
-import javax.ws.rs.Consumes;
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.Response.Status;
-import javax.ws.rs.core.UriInfo;
+import jakarta.ws.rs.Consumes;
+import jakarta.ws.rs.POST;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.core.Context;
+import jakarta.ws.rs.core.MediaType;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response.Status;
+import jakarta.ws.rs.core.UriInfo;
 
 import org.apache.directory.scim.spec.protocol.data.BulkRequest;
 import org.apache.directory.scim.spec.protocol.data.BulkResponse;
diff --git a/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/ErrorMessageType.java b/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/ErrorMessageType.java
index 33c91d0..280e8ea 100644
--- a/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/ErrorMessageType.java
+++ b/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/ErrorMessageType.java
@@ -19,8 +19,8 @@
 
 package org.apache.directory.scim.spec.protocol;
 
-import javax.xml.bind.annotation.XmlEnum;
-import javax.xml.bind.annotation.XmlEnumValue;
+import jakarta.xml.bind.annotation.XmlEnum;
+import jakarta.xml.bind.annotation.XmlEnumValue;
 
 import lombok.AccessLevel;
 import lombok.Getter;
diff --git a/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/GroupResource.java b/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/GroupResource.java
index b3c1f30..2279dd8 100644
--- a/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/GroupResource.java
+++ b/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/GroupResource.java
@@ -21,7 +21,7 @@ package org.apache.directory.scim.spec.protocol;
 
 import io.swagger.annotations.Api;
 
-import javax.ws.rs.Path;
+import jakarta.ws.rs.Path;
 
 import org.apache.directory.scim.spec.resources.ScimGroup;
 
diff --git a/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/ResourceTypesResource.java b/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/ResourceTypesResource.java
index a8c04d3..50c239f 100644
--- a/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/ResourceTypesResource.java
+++ b/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/ResourceTypesResource.java
@@ -19,14 +19,14 @@
 
 package org.apache.directory.scim.spec.protocol;
 
-import javax.ws.rs.GET;
-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.MediaType;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.Response.Status;
+import jakarta.ws.rs.GET;
+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.MediaType;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response.Status;
 
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
diff --git a/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/SchemaResource.java b/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/SchemaResource.java
index b5ed761..5d72e9f 100644
--- a/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/SchemaResource.java
+++ b/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/SchemaResource.java
@@ -19,14 +19,14 @@
 
 package org.apache.directory.scim.spec.protocol;
 
-import javax.ws.rs.GET;
-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.MediaType;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.Response.Status;
+import jakarta.ws.rs.GET;
+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.MediaType;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response.Status;
 
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
diff --git a/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/SearchResource.java b/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/SearchResource.java
index d364de2..76b91a5 100644
--- a/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/SearchResource.java
+++ b/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/SearchResource.java
@@ -19,12 +19,12 @@
 
 package org.apache.directory.scim.spec.protocol;
 
-import javax.ws.rs.POST;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.Response.Status;
+import jakarta.ws.rs.POST;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.core.MediaType;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response.Status;
 
 import org.apache.directory.scim.spec.protocol.data.SearchRequest;
 import org.apache.directory.scim.spec.resources.ScimResource;
diff --git a/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/SelfResource.java b/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/SelfResource.java
index 3632308..55da024 100644
--- a/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/SelfResource.java
+++ b/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/SelfResource.java
@@ -19,17 +19,17 @@
 
 package org.apache.directory.scim.spec.protocol;
 
-import javax.ws.rs.Consumes;
-import javax.ws.rs.DELETE;
-import javax.ws.rs.GET;
-import javax.ws.rs.POST;
-import javax.ws.rs.PUT;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.Response.Status;
+import jakarta.ws.rs.Consumes;
+import jakarta.ws.rs.DELETE;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.POST;
+import jakarta.ws.rs.PUT;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.QueryParam;
+import jakarta.ws.rs.core.MediaType;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response.Status;
 
 import org.apache.directory.scim.spec.protocol.attribute.AttributeReferenceListWrapper;
 import org.apache.directory.scim.spec.protocol.data.PatchRequest;
diff --git a/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/ServiceProviderConfigResource.java b/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/ServiceProviderConfigResource.java
index d912722..bd166c1 100644
--- a/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/ServiceProviderConfigResource.java
+++ b/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/ServiceProviderConfigResource.java
@@ -19,14 +19,14 @@
 
 package org.apache.directory.scim.spec.protocol;
 
-import javax.ws.rs.GET;
-import javax.ws.rs.Path;
-import javax.ws.rs.Produces;
-import javax.ws.rs.core.Context;
-import javax.ws.rs.core.MediaType;
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.Response.Status;
-import javax.ws.rs.core.UriInfo;
+import jakarta.ws.rs.GET;
+import jakarta.ws.rs.Path;
+import jakarta.ws.rs.Produces;
+import jakarta.ws.rs.core.Context;
+import jakarta.ws.rs.core.MediaType;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response.Status;
+import jakarta.ws.rs.core.UriInfo;
 
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
diff --git a/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/UserResource.java b/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/UserResource.java
index 5ad6508..8128f17 100644
--- a/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/UserResource.java
+++ b/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/UserResource.java
@@ -21,7 +21,7 @@ package org.apache.directory.scim.spec.protocol;
 
 import io.swagger.annotations.Api;
 
-import javax.ws.rs.Path;
+import jakarta.ws.rs.Path;
 
 import org.apache.directory.scim.spec.resources.ScimUser;
 
diff --git a/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/data/BulkOperation.java b/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/data/BulkOperation.java
index 13cf703..8ed6b15 100644
--- a/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/data/BulkOperation.java
+++ b/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/data/BulkOperation.java
@@ -19,13 +19,13 @@
 
 package org.apache.directory.scim.spec.protocol.data;
 
-import javax.ws.rs.core.Response.Status;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlEnumValue;
-import javax.xml.bind.annotation.XmlType;
-import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import jakarta.ws.rs.core.Response.Status;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlEnumValue;
+import jakarta.xml.bind.annotation.XmlType;
+import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 
 import org.apache.directory.scim.spec.resources.BaseResource;
 import org.apache.directory.scim.spec.resources.ScimResource;
diff --git a/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/data/BulkRequest.java b/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/data/BulkRequest.java
index 5a8e45e..5b8b0cf 100644
--- a/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/data/BulkRequest.java
+++ b/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/data/BulkRequest.java
@@ -21,10 +21,10 @@ package org.apache.directory.scim.spec.protocol.data;
 
 import java.util.List;
 
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlType;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlType;
 
 import org.apache.directory.scim.spec.resources.BaseResource;
 import lombok.Data;
diff --git a/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/data/BulkResponse.java b/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/data/BulkResponse.java
index 3ce2e8f..72b143a 100644
--- a/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/data/BulkResponse.java
+++ b/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/data/BulkResponse.java
@@ -21,12 +21,12 @@ package org.apache.directory.scim.spec.protocol.data;
 
 import java.util.List;
 
-import javax.ws.rs.core.Response.Status;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlType;
-import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import jakarta.ws.rs.core.Response.Status;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlType;
+import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 
 import org.apache.directory.scim.spec.resources.BaseResource;
 import lombok.Data;
diff --git a/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/data/ErrorResponse.java b/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/data/ErrorResponse.java
index 7a8f121..c0665f6 100644
--- a/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/data/ErrorResponse.java
+++ b/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/data/ErrorResponse.java
@@ -22,13 +22,13 @@ package org.apache.directory.scim.spec.protocol.data;
 import java.util.ArrayList;
 import java.util.List;
 
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.Response.Status;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import jakarta.ws.rs.core.Response;
+import jakarta.ws.rs.core.Response.Status;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 
 import org.apache.directory.scim.spec.protocol.ErrorMessageType;
 import org.apache.directory.scim.spec.resources.BaseResource;
diff --git a/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/data/ListResponse.java b/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/data/ListResponse.java
index 3165a76..c5f594a 100644
--- a/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/data/ListResponse.java
+++ b/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/data/ListResponse.java
@@ -21,10 +21,10 @@ package org.apache.directory.scim.spec.protocol.data;
 
 import java.util.List;
 
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlRootElement;
 
 import lombok.Data;
 import lombok.EqualsAndHashCode;
diff --git a/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/data/PatchOperation.java b/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/data/PatchOperation.java
index 9486035..2a79318 100644
--- a/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/data/PatchOperation.java
+++ b/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/data/PatchOperation.java
@@ -19,13 +19,13 @@
 
 package org.apache.directory.scim.spec.protocol.data;
 
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlEnum;
-import javax.xml.bind.annotation.XmlEnumValue;
-import javax.xml.bind.annotation.XmlType;
-import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlEnum;
+import jakarta.xml.bind.annotation.XmlEnumValue;
+import jakarta.xml.bind.annotation.XmlType;
+import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 
 import lombok.Data;
 import lombok.EqualsAndHashCode;
diff --git a/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/data/PatchOperationPathAdapter.java b/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/data/PatchOperationPathAdapter.java
index 103250b..f35666d 100644
--- a/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/data/PatchOperationPathAdapter.java
+++ b/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/data/PatchOperationPathAdapter.java
@@ -19,7 +19,7 @@
 
 package org.apache.directory.scim.spec.protocol.data;
 
-import javax.xml.bind.annotation.adapters.XmlAdapter;
+import jakarta.xml.bind.annotation.adapters.XmlAdapter;
 
 public class PatchOperationPathAdapter extends XmlAdapter<String, PatchOperationPath>{
 
diff --git a/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/data/PatchRequest.java b/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/data/PatchRequest.java
index 75363aa..4c9db03 100644
--- a/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/data/PatchRequest.java
+++ b/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/data/PatchRequest.java
@@ -21,10 +21,10 @@ package org.apache.directory.scim.spec.protocol.data;
 
 import java.util.List;
 
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlRootElement;
 
 import lombok.Data;
 import lombok.EqualsAndHashCode;
diff --git a/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/data/SearchRequest.java b/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/data/SearchRequest.java
index b5d3a5e..5779503 100644
--- a/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/data/SearchRequest.java
+++ b/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/data/SearchRequest.java
@@ -21,11 +21,11 @@ package org.apache.directory.scim.spec.protocol.data;
 
 import java.util.Set;
 
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlType;
-import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlType;
+import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 
 import lombok.Data;
 import lombok.EqualsAndHashCode;
diff --git a/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/data/StatusAdapter.java b/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/data/StatusAdapter.java
index 44020c5..8887d0c 100644
--- a/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/data/StatusAdapter.java
+++ b/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/data/StatusAdapter.java
@@ -19,8 +19,8 @@
 
 package org.apache.directory.scim.spec.protocol.data;
 
-import javax.ws.rs.core.Response.Status;
-import javax.xml.bind.annotation.adapters.XmlAdapter;
+import jakarta.ws.rs.core.Response.Status;
+import jakarta.xml.bind.annotation.adapters.XmlAdapter;
 
 public class StatusAdapter extends XmlAdapter<String, Status> {
 
@@ -46,4 +46,4 @@ public class StatusAdapter extends XmlAdapter<String, Status> {
     return Integer.toString(v.getStatusCode());
   }
 
-}
\ No newline at end of file
+}
diff --git a/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/exception/ScimException.java b/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/exception/ScimException.java
index 58542f8..c8e0e19 100644
--- a/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/exception/ScimException.java
+++ b/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/exception/ScimException.java
@@ -19,7 +19,7 @@
 
 package org.apache.directory.scim.spec.protocol.exception;
 
-import javax.ws.rs.core.Response.Status;
+import jakarta.ws.rs.core.Response.Status;
 
 import org.apache.directory.scim.spec.protocol.data.ErrorResponse;
 import lombok.Data;
diff --git a/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/search/SortOrder.java b/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/search/SortOrder.java
index 5a1f6e7..a0d550b 100644
--- a/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/search/SortOrder.java
+++ b/scim-spec/scim-spec-protocol/src/main/java/org/apache/directory/scim/spec/protocol/search/SortOrder.java
@@ -19,7 +19,7 @@
 
 package org.apache.directory.scim.spec.protocol.search;
 
-import javax.xml.bind.annotation.XmlEnumValue;
+import jakarta.xml.bind.annotation.XmlEnumValue;
 
 public enum SortOrder {
   @XmlEnumValue("ascending")
diff --git a/scim-spec/scim-spec-schema/pom.xml b/scim-spec/scim-spec-schema/pom.xml
index 85f656f..3da305a 100644
--- a/scim-spec/scim-spec-schema/pom.xml
+++ b/scim-spec/scim-spec-schema/pom.xml
@@ -29,13 +29,17 @@
 
 	<dependencies>
 		<dependency>
-			<groupId>javax.xml.bind</groupId>
-			<artifactId>jaxb-api</artifactId>
+      <groupId>jakarta.xml.bind</groupId>
+      <artifactId>jakarta.xml.bind-api</artifactId>
 		</dependency>
 		<dependency>
-			<groupId>javax.validation</groupId>
-			<artifactId>validation-api</artifactId>
-		</dependency>
+      <groupId>jakarta.ws.rs</groupId>
+      <artifactId>jakarta.ws.rs-api</artifactId>
+    </dependency>
+    <dependency>
+      <groupId>jakarta.validation</groupId>
+      <artifactId>jakarta.validation-api</artifactId>
+    </dependency>
 		<dependency>
 			<groupId>org.projectlombok</groupId>
 			<artifactId>lombok</artifactId>
@@ -46,22 +50,29 @@
       <groupId>org.junit.jupiter</groupId>
       <artifactId>junit-jupiter</artifactId>
       <scope>test</scope>
+    </dependency>
+  <dependency>
+    <groupId>com.fasterxml.jackson.jakarta.rs</groupId>
+    <artifactId>jackson-jakarta-rs-json-provider</artifactId>
+  </dependency>
+  <dependency>
+    <groupId>org.hibernate.validator</groupId>
+    <artifactId>hibernate-validator</artifactId>
+    <scope>test</scope>
+  </dependency>
+  <dependency>
+    <groupId>jakarta.el</groupId>
+    <artifactId>jakarta.el-api</artifactId>
+    <scope>test</scope>
+  </dependency>
+    <dependency>
+      <groupId>org.glassfish</groupId>
+      <artifactId>jakarta.el</artifactId>
+      <version>4.0.2</version>
     </dependency>
 	<dependency>
-		<groupId>com.fasterxml.jackson.jaxrs</groupId>
-		<artifactId>jackson-jaxrs-json-provider</artifactId>
-	</dependency>
-	<dependency>
-		<groupId>org.hibernate</groupId>
-		<artifactId>hibernate-validator</artifactId>
-	</dependency>
-	<dependency>
-		<groupId>org.glassfish</groupId>
-		<artifactId>javax.el</artifactId>
-	</dependency>
-	<dependency>
-    <groupId>javax.ejb</groupId>
-    <artifactId>javax.ejb-api</artifactId>
+    <groupId>jakarta.ejb</groupId>
+    <artifactId>jakarta.ejb-api</artifactId>
 	</dependency>
 	<dependency>
 		<groupId>org.slf4j</groupId>
diff --git a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/adapter/Iso8601DateTimeAdapter.java b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/adapter/Iso8601DateTimeAdapter.java
index c391624..a838092 100644
--- a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/adapter/Iso8601DateTimeAdapter.java
+++ b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/adapter/Iso8601DateTimeAdapter.java
@@ -22,7 +22,7 @@ package org.apache.directory.scim.spec.adapter;
 import java.text.SimpleDateFormat;
 import java.util.Date;
 
-import javax.xml.bind.annotation.adapters.XmlAdapter;
+import jakarta.xml.bind.annotation.adapters.XmlAdapter;
 
 public class Iso8601DateTimeAdapter extends XmlAdapter<String, Date> {
   
diff --git a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/adapter/LocalDateTimeAdapter.java b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/adapter/LocalDateTimeAdapter.java
index 8ebd4ba..64db0a3 100644
--- a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/adapter/LocalDateTimeAdapter.java
+++ b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/adapter/LocalDateTimeAdapter.java
@@ -22,7 +22,7 @@ package org.apache.directory.scim.spec.adapter;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 
-import javax.xml.bind.annotation.adapters.XmlAdapter;
+import jakarta.xml.bind.annotation.adapters.XmlAdapter;
 
 public class LocalDateTimeAdapter extends XmlAdapter<String, LocalDateTime> {
   
diff --git a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/extension/EnterpriseExtension.java b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/extension/EnterpriseExtension.java
index 4217d4c..2aba1df 100644
--- a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/extension/EnterpriseExtension.java
+++ b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/extension/EnterpriseExtension.java
@@ -21,11 +21,11 @@ package org.apache.directory.scim.spec.extension;
 
 import java.io.Serializable;
 
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlType;
 
 import lombok.Data;
 import org.apache.directory.scim.spec.annotation.ScimAttribute;
diff --git a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/json/ObjectMapperFactory.java b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/json/ObjectMapperFactory.java
index ff8946a..6ee0121 100644
--- a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/json/ObjectMapperFactory.java
+++ b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/json/ObjectMapperFactory.java
@@ -23,18 +23,18 @@ import com.fasterxml.jackson.databind.AnnotationIntrospector;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.introspect.AnnotationIntrospectorPair;
 import com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector;
-import com.fasterxml.jackson.module.jaxb.JaxbAnnotationIntrospector;
-import com.fasterxml.jackson.module.jaxb.JaxbAnnotationModule;
+import com.fasterxml.jackson.module.jakarta.xmlbind.JakartaXmlBindAnnotationIntrospector;
+import com.fasterxml.jackson.module.jakarta.xmlbind.JakartaXmlBindAnnotationModule;
 
 public class ObjectMapperFactory {
 
   public static ObjectMapper getObjectMapper() {
     ObjectMapper objectMapper = new ObjectMapper();
 
-    objectMapper.registerModule(new JaxbAnnotationModule());
+    objectMapper.registerModule(new JakartaXmlBindAnnotationModule());
 
     AnnotationIntrospector pair = new AnnotationIntrospectorPair(
-      new JaxbAnnotationIntrospector(objectMapper.getTypeFactory()),
+      new JakartaXmlBindAnnotationIntrospector(objectMapper.getTypeFactory()),
       new JacksonAnnotationIntrospector());
     objectMapper.setAnnotationIntrospector(pair);
 
diff --git a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/Address.java b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/Address.java
index 3b43da9..90fbaf5 100644
--- a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/Address.java
+++ b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/Address.java
@@ -21,10 +21,10 @@ package org.apache.directory.scim.spec.resources;
 
 import java.io.Serializable;
 
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlType;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlType;
 
 import org.apache.directory.scim.spec.annotation.ScimAttribute;
 import lombok.Data;
diff --git a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/BaseResource.java b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/BaseResource.java
index 9ea5668..da6da1d 100644
--- a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/BaseResource.java
+++ b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/BaseResource.java
@@ -23,10 +23,10 @@ import java.io.Serializable;
 import java.util.HashSet;
 import java.util.Set;
 
-import javax.validation.constraints.Size;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
+import jakarta.validation.constraints.Size;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
 
 import org.apache.directory.scim.spec.validator.Urn;
 import lombok.Data;
diff --git a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/Email.java b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/Email.java
index 24c2043..23f3f4b 100644
--- a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/Email.java
+++ b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/Email.java
@@ -21,10 +21,10 @@ package org.apache.directory.scim.spec.resources;
 
 import java.io.Serializable;
 
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlType;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlType;
 
 import org.apache.directory.scim.spec.annotation.ScimAttribute;
 import lombok.Data;
diff --git a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/Entitlement.java b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/Entitlement.java
index 2c84fcd..efe0699 100644
--- a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/Entitlement.java
+++ b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/Entitlement.java
@@ -21,10 +21,10 @@ package org.apache.directory.scim.spec.resources;
 
 import java.io.Serializable;
 
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlType;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlType;
 
 import org.apache.directory.scim.spec.annotation.ScimAttribute;
 import lombok.Data;
diff --git a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/Im.java b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/Im.java
index 1f6ccc7..dba7fcc 100644
--- a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/Im.java
+++ b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/Im.java
@@ -21,10 +21,10 @@ package org.apache.directory.scim.spec.resources;
 
 import java.io.Serializable;
 
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlType;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlType;
 
 import org.apache.directory.scim.spec.annotation.ScimAttribute;
 import lombok.Data;
diff --git a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/KeyedResource.java b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/KeyedResource.java
index b810577..41af0f2 100644
--- a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/KeyedResource.java
+++ b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/KeyedResource.java
@@ -21,10 +21,10 @@ package org.apache.directory.scim.spec.resources;
 
 import java.io.Serializable;
 
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlType;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlType;
 
 import org.apache.directory.scim.spec.annotation.ScimAttribute;
 import lombok.extern.slf4j.Slf4j;
diff --git a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/Name.java b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/Name.java
index 05720c0..6c78c79 100644
--- a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/Name.java
+++ b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/Name.java
@@ -21,10 +21,10 @@ package org.apache.directory.scim.spec.resources;
 
 import java.io.Serializable;
 
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlType;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlType;
 
 import lombok.Data;
 import lombok.EqualsAndHashCode;
diff --git a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/PhoneNumber.java b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/PhoneNumber.java
index 86ed55a..b49e65f 100644
--- a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/PhoneNumber.java
+++ b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/PhoneNumber.java
@@ -27,10 +27,10 @@ import java.util.HashMap;
 import java.util.Map;
 import java.util.Map.Entry;
 
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlType;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlType;
 
 import org.antlr.v4.runtime.ANTLRInputStream;
 import org.antlr.v4.runtime.BaseErrorListener;
diff --git a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/Photo.java b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/Photo.java
index bf88ef1..67404a5 100644
--- a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/Photo.java
+++ b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/Photo.java
@@ -21,10 +21,10 @@ package org.apache.directory.scim.spec.resources;
 
 import java.io.Serializable;
 
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlType;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlType;
 
 import org.apache.directory.scim.spec.annotation.ScimAttribute;
 import lombok.Data;
diff --git a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/Role.java b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/Role.java
index 4040171..70f9978 100644
--- a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/Role.java
+++ b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/Role.java
@@ -21,10 +21,10 @@ package org.apache.directory.scim.spec.resources;
 
 import java.io.Serializable;
 
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlType;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlType;
 
 import org.apache.directory.scim.spec.annotation.ScimAttribute;
 import lombok.Data;
diff --git a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/ScimExtension.java b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/ScimExtension.java
index e1494dc..e81a71b 100644
--- a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/ScimExtension.java
+++ b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/ScimExtension.java
@@ -21,7 +21,7 @@ package org.apache.directory.scim.spec.resources;
 
 import java.io.Serializable;
 
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlRootElement;
 
 
 @XmlRootElement(name = "ScimExtension")
diff --git a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/ScimGroup.java b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/ScimGroup.java
index 8f74c24..cfef250 100644
--- a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/ScimGroup.java
+++ b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/ScimGroup.java
@@ -22,10 +22,10 @@ package org.apache.directory.scim.spec.resources;
 import java.io.Serializable;
 import java.util.List;
 
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlRootElement;
 
 import org.apache.directory.scim.spec.annotation.ScimAttribute;
 import org.apache.directory.scim.spec.annotation.ScimResourceType;
diff --git a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/ScimResource.java b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/ScimResource.java
index 5c1f93e..a9badf1 100644
--- a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/ScimResource.java
+++ b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/ScimResource.java
@@ -34,11 +34,11 @@ import org.apache.directory.scim.spec.schema.Schema.Attribute.Returned;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import javax.validation.constraints.NotNull;
-import javax.validation.constraints.Size;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
+import jakarta.validation.constraints.NotNull;
+import jakarta.validation.constraints.Size;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
 import java.io.Serializable;
 import java.util.HashMap;
 import java.util.Map;
diff --git a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/ScimResourceWithOptionalId.java b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/ScimResourceWithOptionalId.java
index 3a7ef1e..26bda1f 100644
--- a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/ScimResourceWithOptionalId.java
+++ b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/ScimResourceWithOptionalId.java
@@ -19,9 +19,9 @@
 
 package org.apache.directory.scim.spec.resources;
 
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
 
 import lombok.Data;
 import lombok.EqualsAndHashCode;
diff --git a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/ScimUser.java b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/ScimUser.java
index ac60827..03d9e8f 100644
--- a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/ScimUser.java
+++ b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/ScimUser.java
@@ -23,10 +23,10 @@ import java.io.Serializable;
 import java.util.List;
 import java.util.Optional;
 
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlRootElement;
 
 import org.apache.directory.scim.spec.annotation.ScimAttribute;
 import org.apache.directory.scim.spec.annotation.ScimResourceType;
diff --git a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/X509Certificate.java b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/X509Certificate.java
index b8cc3bb..23e3733 100644
--- a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/X509Certificate.java
+++ b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/resources/X509Certificate.java
@@ -21,10 +21,10 @@ package org.apache.directory.scim.spec.resources;
 
 import java.io.Serializable;
 
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlType;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlType;
 
 import org.apache.directory.scim.spec.annotation.ScimAttribute;
 import lombok.Data;
diff --git a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/schema/Meta.java b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/schema/Meta.java
index 06b915a..fe634f7 100644
--- a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/schema/Meta.java
+++ b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/schema/Meta.java
@@ -22,12 +22,12 @@ package org.apache.directory.scim.spec.schema;
 import java.io.Serializable;
 import java.time.LocalDateTime;
 
-import javax.validation.constraints.Size;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlType;
-import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
+import jakarta.validation.constraints.Size;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlType;
+import jakarta.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
 
 import org.apache.directory.scim.spec.adapter.LocalDateTimeAdapter;
 import lombok.Data;
diff --git a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/schema/ResourceReference.java b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/schema/ResourceReference.java
index 7fdec7d..55af15f 100644
--- a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/schema/ResourceReference.java
+++ b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/schema/ResourceReference.java
@@ -21,12 +21,12 @@ package org.apache.directory.scim.spec.schema;
 
 import java.io.Serializable;
 
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlEnum;
-import javax.xml.bind.annotation.XmlEnumValue;
-import javax.xml.bind.annotation.XmlType;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlEnum;
+import jakarta.xml.bind.annotation.XmlEnumValue;
+import jakarta.xml.bind.annotation.XmlType;
 
 import org.apache.directory.scim.spec.annotation.ScimAttribute;
 import org.apache.directory.scim.spec.annotation.ScimResourceIdReference;
diff --git a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/schema/ResourceType.java b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/schema/ResourceType.java
index 5f5d456..1c3bb15 100644
--- a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/schema/ResourceType.java
+++ b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/schema/ResourceType.java
@@ -21,10 +21,10 @@ package org.apache.directory.scim.spec.schema;
 
 import java.util.List;
 
-import javax.validation.constraints.Size;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
+import jakarta.validation.constraints.Size;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
 
 import org.apache.directory.scim.spec.annotation.ScimResourceType;
 import org.apache.directory.scim.spec.resources.ScimResourceWithOptionalId;
diff --git a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/schema/Schema.java b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/schema/Schema.java
index 263caa6..7844550 100644
--- a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/schema/Schema.java
+++ b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/schema/Schema.java
@@ -27,17 +27,17 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-import javax.validation.constraints.NotNull;
-import javax.validation.constraints.Pattern;
-import javax.validation.constraints.Size;
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlElementWrapper;
-import javax.xml.bind.annotation.XmlEnum;
-import javax.xml.bind.annotation.XmlEnumValue;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
+import jakarta.validation.constraints.NotNull;
+import jakarta.validation.constraints.Pattern;
+import jakarta.validation.constraints.Size;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlElementWrapper;
+import jakarta.xml.bind.annotation.XmlEnum;
+import jakarta.xml.bind.annotation.XmlEnumValue;
+import jakarta.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlType;
 
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -256,4 +256,4 @@ public class Schema implements AttributeContainer {
     }
     return attributeNamesMap.get(name.toLowerCase());
   }
-}
\ No newline at end of file
+}
diff --git a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/schema/ServiceProviderConfiguration.java b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/schema/ServiceProviderConfiguration.java
index 8803691..e73307b 100644
--- a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/schema/ServiceProviderConfiguration.java
+++ b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/schema/ServiceProviderConfiguration.java
@@ -21,12 +21,12 @@ package org.apache.directory.scim.spec.schema;
 
 import java.util.List;
 
-import javax.xml.bind.annotation.XmlAccessType;
-import javax.xml.bind.annotation.XmlAccessorType;
-import javax.xml.bind.annotation.XmlElement;
-import javax.xml.bind.annotation.XmlEnumValue;
-import javax.xml.bind.annotation.XmlRootElement;
-import javax.xml.bind.annotation.XmlType;
+import jakarta.xml.bind.annotation.XmlAccessType;
+import jakarta.xml.bind.annotation.XmlAccessorType;
+import jakarta.xml.bind.annotation.XmlElement;
+import jakarta.xml.bind.annotation.XmlEnumValue;
+import jakarta.xml.bind.annotation.XmlRootElement;
+import jakarta.xml.bind.annotation.XmlType;
 
 import org.apache.directory.scim.spec.resources.ScimResourceWithOptionalId;
 import lombok.Data;
diff --git a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/validator/Urn.java b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/validator/Urn.java
index 777b162..6bc8ca5 100644
--- a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/validator/Urn.java
+++ b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/validator/Urn.java
@@ -27,8 +27,8 @@ import static java.lang.annotation.ElementType.FIELD;
 import static java.lang.annotation.ElementType.METHOD;
 import static java.lang.annotation.ElementType.PARAMETER;
 
-import javax.validation.Constraint;
-import javax.validation.Payload;
+import jakarta.validation.Constraint;
+import jakarta.validation.Payload;
 
 @Constraint(validatedBy = UrnValidator.class)
 @Target( { METHOD, FIELD, PARAMETER })
diff --git a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/validator/UrnValidator.java b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/validator/UrnValidator.java
index f15089b..36ce300 100644
--- a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/validator/UrnValidator.java
+++ b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/validator/UrnValidator.java
@@ -19,8 +19,8 @@
 
 package org.apache.directory.scim.spec.validator;
 
-import javax.validation.ConstraintValidator;
-import javax.validation.ConstraintValidatorContext;
+import jakarta.validation.ConstraintValidator;
+import jakarta.validation.ConstraintValidatorContext;
 
 public class UrnValidator implements ConstraintValidator<Urn, String> {
 
diff --git a/scim-spec/scim-spec-schema/src/test/java/org/apache/directory/scim/spec/schema/SchemaTest.java b/scim-spec/scim-spec-schema/src/test/java/org/apache/directory/scim/spec/schema/SchemaTest.java
index d8d8072..b38003e 100644
--- a/scim-spec/scim-spec-schema/src/test/java/org/apache/directory/scim/spec/schema/SchemaTest.java
+++ b/scim-spec/scim-spec-schema/src/test/java/org/apache/directory/scim/spec/schema/SchemaTest.java
@@ -28,10 +28,10 @@ import org.junit.jupiter.api.Test;
 import org.junit.jupiter.params.ParameterizedTest;
 import org.junit.jupiter.params.provider.ValueSource;
 
-import javax.validation.ConstraintViolation;
-import javax.validation.Validation;
-import javax.validation.Validator;
-import javax.validation.ValidatorFactory;
+import jakarta.validation.ConstraintViolation;
+import jakarta.validation.Validation;
+import jakarta.validation.Validator;
+import jakarta.validation.ValidatorFactory;
 import java.io.InputStream;
 import java.util.Set;