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/07/13 18:40:35 UTC

[directory-scimple] 01/01: Move HTTP Status containing exceptions to common parent

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

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

commit 735586356a65cc24af01077a45d97a0efe20cf00
Author: Brian Demers <bd...@apache.org>
AuthorDate: Wed Jul 6 14:26:53 2022 -0400

    Move HTTP Status containing exceptions to common parent
---
 ...xtensionsException.java => ResourceException.java} | 16 ++++++++--------
 .../exception/UnableToCreateResourceException.java    | 17 ++++++-----------
 .../exception/UnableToDeleteResourceException.java    | 16 ++++++----------
 ...n.java => UnableToResolveIdResourceException.java} | 19 ++++++-------------
 ... UnableToRetrieveExtensionsResourceException.java} | 16 ++++++----------
 .../exception/UnableToRetrieveResourceException.java  | 18 ++++++------------
 .../exception/UnableToUpdateResourceException.java    | 18 ++++++------------
 .../directory/scim/server/provider/Provider.java      |  6 +++---
 .../scim/server/provider/ProviderRegistry.java        |  6 +++---
 .../scim/server/provider/SelfIdResolver.java          |  4 ++--
 .../directory/scim/server/rest/BulkResourceImpl.java  | 13 ++-----------
 .../directory/scim/server/rest/SelfResourceImpl.java  | 18 +++++++++---------
 .../directory/scim/server/utility/EndpointUtil.java   |  4 ++--
 .../scim/server/rest/SelfResourceImplTest.java        |  4 ++--
 .../memory/service/InMemorySelfResolverImpl.java      |  6 +++---
 .../scim/example/memory/service/ScimConfigurator.java |  4 ++--
 ...ception.java => ScimResourceInvalidException.java} |  4 ++--
 17 files changed, 74 insertions(+), 115 deletions(-)

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/ResourceException.java
similarity index 80%
rename from scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/exception/UnableToRetrieveExtensionsException.java
rename to scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/exception/ResourceException.java
index c89110d..c8e21ef 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/ResourceException.java
@@ -20,25 +20,25 @@
 package org.apache.directory.scim.server.exception;
 
 import jakarta.ws.rs.core.Response.Status;
-
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 
 @Data
 @EqualsAndHashCode(callSuper=true)
-public class UnableToRetrieveExtensionsException extends Exception {
+public class ResourceException extends Exception {
 
   private static final long serialVersionUID = -3872700870424005641L;
 
   private Status status;
-  
-  public UnableToRetrieveExtensionsException(Status status, String what) {
-    super(what);
+
+  public ResourceException(Status status, String message) {
+    super(message);
+
     this.status = status;
   }
-  
-  public UnableToRetrieveExtensionsException(Status status, String what, Throwable why) {
-    super(what, why);
+
+  public ResourceException(Status status, String message, Throwable cause) {
+    super(message, cause);
     this.status = status;
   }
 }
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 33b58d2..335a076 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
@@ -26,20 +26,15 @@ import lombok.EqualsAndHashCode;
 
 @Data
 @EqualsAndHashCode(callSuper=true)
-public class UnableToCreateResourceException extends Exception {
+public class UnableToCreateResourceException extends ResourceException {
 
   private static final long serialVersionUID = -3872700870424005641L;
 
-  private Status status;
-  
-  public UnableToCreateResourceException(Status status, String what) {
-    super(what);
-    
-    this.status = status;
+  public UnableToCreateResourceException(Status status, String message) {
+    super(status, message);
   }
-  
-  public UnableToCreateResourceException(Status status, String what, Throwable why) {
-    super(what, why);
-    this.status = status;
+
+  public UnableToCreateResourceException(Status status, String message, Throwable cause) {
+    super(status, message, cause);
   }
 }
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 34cac25..64a21dd 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
@@ -26,19 +26,15 @@ import lombok.EqualsAndHashCode;
 
 @Data
 @EqualsAndHashCode(callSuper=true)
-public class UnableToDeleteResourceException extends Exception {
+public class UnableToDeleteResourceException extends ResourceException {
 
   private static final long serialVersionUID = -3872700870424005641L;
 
-  private Status status;
-  
-  public UnableToDeleteResourceException(Status status, String what) {
-    super(what);
-    this.status = status;
+  public UnableToDeleteResourceException(Status status, String message) {
+    super(status, message);
   }
-  
-  public UnableToDeleteResourceException(Status status, String what, Throwable why) {
-    super(what, why);
-    this.status = status;
+
+  public UnableToDeleteResourceException(Status status, String message, Throwable cause) {
+    super(status, message, cause);
   }
 }
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/UnableToResolveIdResourceException.java
similarity index 75%
rename from scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/exception/UnableToResolveIdException.java
rename to scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/exception/UnableToResolveIdResourceException.java
index a347029..21b5908 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/UnableToResolveIdResourceException.java
@@ -26,22 +26,15 @@ import lombok.EqualsAndHashCode;
 
 @Data
 @EqualsAndHashCode(callSuper=true)
-public class UnableToResolveIdException extends Exception {
+public class UnableToResolveIdResourceException extends ResourceException {
 
   private static final long serialVersionUID = -7401709416973728017L;
 
-  private Status status;
-  
-  public UnableToResolveIdException(Status status, String what) {
-    super(what);
-    
-    this.status = status;
-  }
-  
-  public UnableToResolveIdException(Status status, String what, Throwable why) {
-    super(what, why);
-    
-    this.status = status;
+  public UnableToResolveIdResourceException(Status status, String message) {
+    super(status, message);
   }
 
+  public UnableToResolveIdResourceException(Status status, String message, Throwable cause) {
+    super(status, message, cause);
+  }
 }
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/UnableToRetrieveExtensionsResourceException.java
similarity index 75%
copy from scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/exception/UnableToDeleteResourceException.java
copy to scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/exception/UnableToRetrieveExtensionsResourceException.java
index 34cac25..37c184e 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/UnableToRetrieveExtensionsResourceException.java
@@ -26,19 +26,15 @@ import lombok.EqualsAndHashCode;
 
 @Data
 @EqualsAndHashCode(callSuper=true)
-public class UnableToDeleteResourceException extends Exception {
+public class UnableToRetrieveExtensionsResourceException extends ResourceException {
 
   private static final long serialVersionUID = -3872700870424005641L;
 
-  private Status status;
-  
-  public UnableToDeleteResourceException(Status status, String what) {
-    super(what);
-    this.status = status;
+  public UnableToRetrieveExtensionsResourceException(Status status, String message) {
+    super(status, message);
   }
-  
-  public UnableToDeleteResourceException(Status status, String what, Throwable why) {
-    super(what, why);
-    this.status = status;
+
+  public UnableToRetrieveExtensionsResourceException(Status status, String message, Throwable cause) {
+    super(status, message, cause);
   }
 }
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 5685381..f407d22 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
@@ -26,21 +26,15 @@ import lombok.EqualsAndHashCode;
 
 @Data
 @EqualsAndHashCode(callSuper=true)
-public class UnableToRetrieveResourceException extends Exception {
+public class UnableToRetrieveResourceException extends ResourceException {
 
   private static final long serialVersionUID = -3872700870424005641L;
 
-  private Status status;
-  
-  public UnableToRetrieveResourceException(Status status, String what) {
-    super(what);
-    
-    this.status = status;
+  public UnableToRetrieveResourceException(Status status, String message) {
+    super(status, message);
   }
-  
-  public UnableToRetrieveResourceException(Status status, String what, Throwable why) {
-    super(what, why);
-    
-    this.status = status;
+
+  public UnableToRetrieveResourceException(Status status, String message, Throwable cause) {
+    super(status, message, cause);
   }
 }
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 589bee2..8938a80 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
@@ -26,21 +26,15 @@ import lombok.EqualsAndHashCode;
 
 @Data
 @EqualsAndHashCode(callSuper=true)
-public class UnableToUpdateResourceException extends Exception {
+public class UnableToUpdateResourceException extends ResourceException {
 
   private static final long serialVersionUID = -3872700870424005641L;
 
-  private Status status;
-  
-  public UnableToUpdateResourceException(Status status, String what) {
-    super(what);
-    
-    this.status = status;
+  public UnableToUpdateResourceException(Status status, String message) {
+    super(status, message);
   }
-  
-  public UnableToUpdateResourceException(Status status, String what, Throwable why) {
-    super(what, why);
-    
-    this.status = status;
+
+  public UnableToUpdateResourceException(Status status, String message, Throwable cause) {
+    super(status, message, cause);
   }
 }
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 fc3496a..25edc3e 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
@@ -27,7 +27,7 @@ import jakarta.ws.rs.core.Response.Status;
 
 import org.apache.directory.scim.server.exception.UnableToCreateResourceException;
 import org.apache.directory.scim.server.exception.UnableToDeleteResourceException;
-import org.apache.directory.scim.server.exception.UnableToRetrieveExtensionsException;
+import org.apache.directory.scim.server.exception.UnableToRetrieveExtensionsResourceException;
 import org.apache.directory.scim.server.exception.UnableToRetrieveResourceException;
 import org.apache.directory.scim.server.exception.UnableToUpdateResourceException;
 import org.apache.directory.scim.server.rest.BaseResourceTypeResourceImpl;
@@ -117,10 +117,10 @@ public interface Provider<T extends ScimResource> {
    * associated with the ScimResource of type T.
    * 
    * @return A list of ScimExtension classes.
-   * @throws UnableToRetrieveExtensionsException If the provider cannot return
+   * @throws UnableToRetrieveExtensionsResourceException If the provider cannot return
    *         the appropriate list.
    */
-  List<Class<? extends ScimExtension>> getExtensionList() throws UnableToRetrieveExtensionsException;
+  List<Class<? extends ScimExtension>> getExtensionList() throws UnableToRetrieveExtensionsResourceException;
 
   /**
    * <p>In the case where the provider throws an unhandled exception, this
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 ddce62a..f124223 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
@@ -40,7 +40,7 @@ import jakarta.xml.bind.annotation.XmlEnumValue;
 
 import org.apache.directory.scim.common.ScimUtils;
 import org.apache.directory.scim.server.exception.InvalidProviderException;
-import org.apache.directory.scim.server.exception.UnableToRetrieveExtensionsException;
+import org.apache.directory.scim.server.exception.UnableToRetrieveExtensionsResourceException;
 import org.apache.directory.scim.server.schema.Registry;
 import org.apache.directory.scim.spec.annotation.ScimAttribute;
 import org.apache.directory.scim.spec.annotation.ScimExtensionType;
@@ -102,7 +102,7 @@ public class ProviderRegistry {
   private Map<Class<? extends ScimResource>, Instance<? extends Provider<? extends ScimResource>>> providerMap = new HashMap<>();
 
   @Lock(LockType.WRITE)
-  public <T extends ScimResource> void registerProvider(Class<T> clazz, Instance<? extends Provider<T>> providerInstance) throws InvalidProviderException, JsonProcessingException, UnableToRetrieveExtensionsException {
+  public <T extends ScimResource> void registerProvider(Class<T> clazz, Instance<? extends Provider<T>> providerInstance) throws InvalidProviderException, JsonProcessingException, UnableToRetrieveExtensionsResourceException {
 
     Provider<T> provider = providerInstance.get();
 
@@ -145,7 +145,7 @@ public class ProviderRegistry {
     return (Provider<T>) providerInstance.get();
   }
 
-  private ResourceType generateResourceType(Class<? extends ScimResource> base, Provider<? extends ScimResource> provider) throws InvalidProviderException, UnableToRetrieveExtensionsException {
+  private ResourceType generateResourceType(Class<? extends ScimResource> base, Provider<? extends ScimResource> provider) throws InvalidProviderException, UnableToRetrieveExtensionsResourceException {
 
     ScimResourceType scimResourceType = base.getAnnotation(ScimResourceType.class);
 
diff --git a/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/provider/SelfIdResolver.java b/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/provider/SelfIdResolver.java
index 6132398..f1f17e4 100644
--- a/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/provider/SelfIdResolver.java
+++ b/scim-server/scim-server-common/src/main/java/org/apache/directory/scim/server/provider/SelfIdResolver.java
@@ -21,10 +21,10 @@ package org.apache.directory.scim.server.provider;
 
 import java.security.Principal;
 
-import org.apache.directory.scim.server.exception.UnableToResolveIdException;
+import org.apache.directory.scim.server.exception.UnableToResolveIdResourceException;
 
 public interface SelfIdResolver {
 
-  String resolveToInternalId(Principal principal) throws UnableToResolveIdException;
+  String resolveToInternalId(Principal principal) throws UnableToResolveIdResourceException;
   
 }
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 a5aead2..4486f00 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
@@ -234,18 +234,9 @@ public class BulkResourceImpl implements BulkResource {
           log.error("Failed to do bulk operation", resourceException);
 
           errorCount += errorCountIncrement;
-          String detail = resourceException.getLocalizedMessage();
-          Status status;
 
-          if (resourceException instanceof UnableToCreateResourceException) {
-            status = ((UnableToCreateResourceException) resourceException).getStatus();
-          } else if (resourceException instanceof UnableToDeleteResourceException) {
-            status = ((UnableToDeleteResourceException) resourceException).getStatus();
-          } else {
-            status = ((UnableToUpdateResourceException) resourceException).getStatus();
-          }
-
-          createAndSetErrorResponse(operationResult, status, detail);
+          String detail = resourceException.getLocalizedMessage();
+          createAndSetErrorResponse(operationResult, resourceException.getStatus(), detail);
 
           if (operationResult.getBulkId() != null) {
             String bulkIdKey = "bulkId:" + operationResult.getBulkId();
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 11d0090..273b79a 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
@@ -29,7 +29,7 @@ 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.exception.UnableToResolveIdResourceException;
 import org.apache.directory.scim.server.provider.SelfIdResolver;
 import org.apache.directory.scim.spec.protocol.SelfResource;
 import org.apache.directory.scim.spec.protocol.UserResource;
@@ -58,7 +58,7 @@ public class SelfResourceImpl implements SelfResource {
     try {
       String internalId = getInternalId();
       return userResource.getById(internalId, attributes, excludedAttributes);
-    } catch (UnableToResolveIdException e) {
+    } catch (UnableToResolveIdResourceException e) {
       return createErrorResponse(e);
     } catch (ScimException e) {
       return createErrorResponse(e);
@@ -78,7 +78,7 @@ public class SelfResourceImpl implements SelfResource {
     try {
       String internalId = getInternalId();
       return userResource.update(resource, internalId, attributes, excludedAttributes);
-    } catch (UnableToResolveIdException e) {
+    } catch (UnableToResolveIdResourceException e) {
       return createErrorResponse(e);
     } catch (ScimException e) {
       return createErrorResponse(e);
@@ -90,7 +90,7 @@ public class SelfResourceImpl implements SelfResource {
     try {
       String internalId = getInternalId();
       return userResource.patch(patchRequest, internalId, attributes, excludedAttributes);
-    } catch (UnableToResolveIdException e) {
+    } catch (UnableToResolveIdResourceException e) {
       return createErrorResponse(e);
     } catch (ScimException e) {
       return createErrorResponse(e);
@@ -102,7 +102,7 @@ public class SelfResourceImpl implements SelfResource {
     try {
       String internalId = getInternalId();
       return userResource.delete(internalId);
-    } catch (UnableToResolveIdException e) {
+    } catch (UnableToResolveIdResourceException e) {
       return createErrorResponse(e);
     } catch (ScimException e) {
       return createErrorResponse(e);
@@ -115,23 +115,23 @@ public class SelfResourceImpl implements SelfResource {
     return er.toResponse();
   }
 
-  private Response createErrorResponse(UnableToResolveIdException e) {
+  private Response createErrorResponse(UnableToResolveIdResourceException e) {
     ErrorResponse er = new ErrorResponse(e.getStatus(), "Error");
     er.addErrorMessage(e.getMessage());
     return er.toResponse();
   }
 
-  private String getInternalId() throws UnableToResolveIdException {
+  private String getInternalId() throws UnableToResolveIdResourceException {
     Principal callerPrincipal = sessionContext.getCallerPrincipal();
 
     if (callerPrincipal != null) {
       log.debug("Resolved SelfResource principal to : {}", callerPrincipal.getName());
     } else {
-      throw new UnableToResolveIdException(Status.UNAUTHORIZED, "Unauthorized");
+      throw new UnableToResolveIdResourceException(Status.UNAUTHORIZED, "Unauthorized");
     }
 
     if (selfIdResolver.isUnsatisfied()) {
-      throw new UnableToResolveIdException(Status.NOT_IMPLEMENTED, "Caller SelfIdResolver not available");
+      throw new UnableToResolveIdResourceException(Status.NOT_IMPLEMENTED, "Caller SelfIdResolver not available");
     }
 
     return selfIdResolver.get().resolveToInternalId(callerPrincipal);
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 3caf009..28b794d 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
@@ -26,7 +26,7 @@ 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;
+import org.apache.directory.scim.spec.exception.ScimResourceInvalidException;
 import org.apache.directory.scim.spec.resources.ScimResource;
 
 @RequestScoped
@@ -45,7 +45,7 @@ public class EndpointUtil {
     }
 
     if (sr.length == 0 || sr.length > 1) {
-      throw new InvalidScimResourceException("ScimResource class must have a ScimResourceType annotation");
+      throw new ScimResourceInvalidException("ScimResource class must have a ScimResourceType annotation");
     }
 
     // yuck! TODO where to get REST endpoint from?
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 c7734fe..edb73f2 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
@@ -33,7 +33,7 @@ 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.exception.UnableToResolveIdResourceException;
 import org.apache.directory.scim.server.provider.SelfIdResolver;
 import org.apache.directory.scim.spec.protocol.UserResource;
 import org.apache.directory.scim.spec.protocol.data.ErrorResponse;
@@ -66,7 +66,7 @@ public class SelfResourceImplTest {
   }
 
   @Test
-  public void withSelfIdResolverTest() throws UnableToResolveIdException, ScimException {
+  public void withSelfIdResolverTest() throws UnableToResolveIdResourceException, ScimException {
 
     String internalId = "test-user-resolved";
     Principal principal = mock(Principal.class);
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 0322298..6415b6b 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
@@ -19,7 +19,7 @@
 
 package org.apache.directory.scim.example.memory.service;
 
-import org.apache.directory.scim.server.exception.UnableToResolveIdException;
+import org.apache.directory.scim.server.exception.UnableToResolveIdResourceException;
 import org.apache.directory.scim.server.provider.SelfIdResolver;
 
 import java.security.Principal;
@@ -31,8 +31,8 @@ import jakarta.ws.rs.core.Response.Status;
 public class InMemorySelfResolverImpl implements SelfIdResolver {
 
   @Override
-  public String resolveToInternalId(Principal principal) throws UnableToResolveIdException {
-    throw new UnableToResolveIdException(Status.NOT_IMPLEMENTED, "Caller Principal not available");
+  public String resolveToInternalId(Principal principal) throws UnableToResolveIdResourceException {
+    throw new UnableToResolveIdResourceException(Status.NOT_IMPLEMENTED, "Caller Principal not available");
   }
 
 }
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 6d4633b..9312bd4 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
@@ -26,7 +26,7 @@ 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;
+import org.apache.directory.scim.server.exception.UnableToRetrieveExtensionsResourceException;
 import org.apache.directory.scim.server.provider.ProviderRegistry;
 import org.apache.directory.scim.spec.resources.ScimGroup;
 import org.apache.directory.scim.spec.resources.ScimUser;
@@ -54,7 +54,7 @@ public class ScimConfigurator implements ServletContextListener {
     try {
       providerRegistry.registerProvider(ScimUser.class, userProviderInstance);
       providerRegistry.registerProvider(ScimGroup.class, groupProviderInstance);
-    } catch (InvalidProviderException | JsonProcessingException | UnableToRetrieveExtensionsException e) {
+    } catch (InvalidProviderException | JsonProcessingException | UnableToRetrieveExtensionsResourceException e) {
       e.printStackTrace();
     }
   }
diff --git a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/exception/InvalidScimResourceException.java b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/exception/ScimResourceInvalidException.java
similarity index 88%
rename from scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/exception/InvalidScimResourceException.java
rename to scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/exception/ScimResourceInvalidException.java
index 51b4a24..01cdc15 100644
--- a/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/exception/InvalidScimResourceException.java
+++ b/scim-spec/scim-spec-schema/src/main/java/org/apache/directory/scim/spec/exception/ScimResourceInvalidException.java
@@ -19,11 +19,11 @@
 
 package org.apache.directory.scim.spec.exception;
 
-public class InvalidScimResourceException extends RuntimeException {
+public class ScimResourceInvalidException extends RuntimeException {
   
   private static final long serialVersionUID = -3378968149599082798L;
 
-  public InvalidScimResourceException(String what) {
+  public ScimResourceInvalidException(String what) {
     super(what);
   }
 }