From 4a3869039cea11608486d929b3e15e62c5c8f579 Mon Sep 17 00:00:00 2001 From: Brian Demers Date: Thu, 2 Apr 2026 21:39:14 -0400 Subject: [PATCH] Move getExtensionList() into BaseRepository as constructor parameter Extension classes are now passed to the BaseRepository constructor as varargs, removing the need for each subclass to override getExtensionList(). Repositories with no extensions simply omit the parameter (defaults to empty list). Also migrates scim-server and spring-boot test InMemory services from raw Repository to BaseRepository, removing duplicate patch() and getResourceClass() implementations. Co-Authored-By: Claude Opus 4.6 (1M context) --- .../scim/core/repository/BaseRepository.java | 17 ++++++++-- .../core/repository/BaseRepositoryTest.java | 34 +++++++++++++++++++ .../jersey4/service/InMemoryGroupService.java | 7 ---- .../jersey4/service/InMemoryUserService.java | 7 +--- .../jersey/service/InMemoryGroupService.java | 7 ---- .../jersey/service/InMemoryUserService.java | 7 +--- .../memory/service/InMemoryGroupService.java | 7 ---- .../memory/service/InMemoryUserService.java | 7 +--- .../quarkus/service/InMemoryGroupService.java | 7 ---- .../quarkus/service/InMemoryUserService.java | 7 +--- .../spring/service/InMemoryGroupService.java | 7 ---- .../spring/service/InMemoryUserService.java | 7 +--- .../spring/service/InMemoryGroupService.java | 7 ---- .../spring/service/InMemoryUserService.java | 7 +--- .../it/testapp/InMemoryGroupService.java | 31 ++--------------- .../it/testapp/InMemoryUserService.java | 30 ++-------------- .../spring/it/app/InMemoryGroupService.java | 31 ++--------------- .../spring/it/app/InMemoryUserService.java | 31 ++--------------- 18 files changed, 67 insertions(+), 191 deletions(-) diff --git a/scim-core/src/main/java/org/apache/directory/scim/core/repository/BaseRepository.java b/scim-core/src/main/java/org/apache/directory/scim/core/repository/BaseRepository.java index 256e5406..caffb62f 100644 --- a/scim-core/src/main/java/org/apache/directory/scim/core/repository/BaseRepository.java +++ b/scim-core/src/main/java/org/apache/directory/scim/core/repository/BaseRepository.java @@ -22,6 +22,7 @@ import org.apache.directory.scim.spec.exception.ResourceException; import org.apache.directory.scim.spec.exception.ResourceNotFoundException; import org.apache.directory.scim.spec.patch.PatchOperation; +import org.apache.directory.scim.spec.resources.ScimExtension; import org.apache.directory.scim.spec.resources.ScimResource; import java.util.List; @@ -34,6 +35,7 @@ * {@link #find}, and {@link #delete}. The following are provided automatically:

*