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/11/30 21:17:04 UTC

[directory-scimple] 01/01: Add Jakarta WS Feature

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

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

commit f2330493a9edf774c95c92a0aecba6f0c738a102
Author: Brian Demers <bd...@apache.org>
AuthorDate: Wed Nov 30 16:16:56 2022 -0500

    Add Jakarta WS Feature
    
    And update/simplify examples to use it instead of ScimResourceHelper.getScimClassesToLoad()
---
 .../scim/example/jersey/JerseyApplication.java     |  4 +--
 .../scim/example/memory/rest/RestApplication.java  |  4 +--
 .../scim/server/rest/ScimpleFeature.java}          | 30 +++++++---------------
 .../directory/scim/server/it/testapp/App.java      |  4 +--
 .../scim/spring/ScimpleSpringConfiguration.java    | 11 +++++---
 5 files changed, 22 insertions(+), 31 deletions(-)

diff --git a/scim-server-examples/scim-server-jersey/src/main/java/org/apache/directory/scim/example/jersey/JerseyApplication.java b/scim-server-examples/scim-server-jersey/src/main/java/org/apache/directory/scim/example/jersey/JerseyApplication.java
index 01b63039..3e8eb59d 100644
--- a/scim-server-examples/scim-server-jersey/src/main/java/org/apache/directory/scim/example/jersey/JerseyApplication.java
+++ b/scim-server-examples/scim-server-jersey/src/main/java/org/apache/directory/scim/example/jersey/JerseyApplication.java
@@ -22,12 +22,12 @@ package org.apache.directory.scim.example.jersey;
 import jakarta.enterprise.inject.Produces;
 import jakarta.ws.rs.core.UriBuilder;
 import org.apache.directory.scim.server.configuration.ServerConfiguration;
-import org.apache.directory.scim.server.rest.ScimResourceHelper;
 
 import java.net.URI;
 import java.util.Set;
 
 import jakarta.ws.rs.core.Application;
+import org.apache.directory.scim.server.rest.ScimpleFeature;
 import org.glassfish.grizzly.http.server.HttpServer;
 import org.glassfish.jersey.grizzly2.httpserver.GrizzlyHttpServerFactory;
 import org.glassfish.jersey.server.ResourceConfig;
@@ -46,7 +46,7 @@ public class JerseyApplication extends Application {
   
   @Override
   public Set<Class<?>> getClasses() {
-    return ScimResourceHelper.getScimClassesToLoad();
+    return Set.of(ScimpleFeature.class);
   }
 
   @Produces
diff --git a/scim-server-examples/scim-server-memory/src/main/java/org/apache/directory/scim/example/memory/rest/RestApplication.java b/scim-server-examples/scim-server-memory/src/main/java/org/apache/directory/scim/example/memory/rest/RestApplication.java
index 51f0893c..d36a713c 100644
--- a/scim-server-examples/scim-server-memory/src/main/java/org/apache/directory/scim/example/memory/rest/RestApplication.java
+++ b/scim-server-examples/scim-server-memory/src/main/java/org/apache/directory/scim/example/memory/rest/RestApplication.java
@@ -21,12 +21,12 @@ package org.apache.directory.scim.example.memory.rest;
 
 import jakarta.enterprise.inject.Produces;
 import org.apache.directory.scim.server.configuration.ServerConfiguration;
-import org.apache.directory.scim.server.rest.ScimResourceHelper;
 
 import java.util.Set;
 
 import jakarta.ws.rs.ApplicationPath;
 import jakarta.ws.rs.core.Application;
+import org.apache.directory.scim.server.rest.ScimpleFeature;
 
 import static org.apache.directory.scim.spec.schema.ServiceProviderConfiguration.AuthenticationSchema.httpBasic;
 
@@ -35,7 +35,7 @@ public class RestApplication extends Application {
   
   @Override
   public Set<Class<?>> getClasses() {
-    return ScimResourceHelper.getScimClassesToLoad();
+    return Set.of(ScimpleFeature.class);
   }
 
   @Produces
diff --git a/scim-server/src/test/java/org/apache/directory/scim/server/it/testapp/App.java b/scim-server/src/main/java/org/apache/directory/scim/server/rest/ScimpleFeature.java
similarity index 50%
copy from scim-server/src/test/java/org/apache/directory/scim/server/it/testapp/App.java
copy to scim-server/src/main/java/org/apache/directory/scim/server/rest/ScimpleFeature.java
index 8c2bdddb..a9770f01 100644
--- a/scim-server/src/test/java/org/apache/directory/scim/server/it/testapp/App.java
+++ b/scim-server/src/main/java/org/apache/directory/scim/server/rest/ScimpleFeature.java
@@ -17,30 +17,18 @@
  * under the License.
  */
 
-package org.apache.directory.scim.server.it.testapp;
+package org.apache.directory.scim.server.rest;
 
-import jakarta.enterprise.context.ApplicationScoped;
-import jakarta.enterprise.inject.Produces;
-import jakarta.ws.rs.core.Application;
-import org.apache.directory.scim.server.configuration.ServerConfiguration;
-import org.apache.directory.scim.server.rest.ScimResourceHelper;
+import jakarta.ws.rs.core.Feature;
+import jakarta.ws.rs.core.FeatureContext;
+import jakarta.ws.rs.ext.Provider;
 
-import java.util.Set;
-
-import static org.apache.directory.scim.spec.schema.ServiceProviderConfiguration.AuthenticationSchema.httpBasic;
-
-@ApplicationScoped
-public class App extends Application {
+@Provider
+public class ScimpleFeature implements Feature {
 
   @Override
-  public Set<Class<?>> getClasses() {
-    return ScimResourceHelper.getScimClassesToLoad();
-  }
-
-  @Produces
-  ServerConfiguration serverConfiguration() {
-    return new ServerConfiguration()
-      .setId("scimple-server-its")
-      .addAuthenticationSchema(httpBasic());
+  public boolean configure(FeatureContext context) {
+    ScimResourceHelper.getScimClassesToLoad().forEach(context::register);
+    return true;
   }
 }
diff --git a/scim-server/src/test/java/org/apache/directory/scim/server/it/testapp/App.java b/scim-server/src/test/java/org/apache/directory/scim/server/it/testapp/App.java
index 8c2bdddb..eec99055 100644
--- a/scim-server/src/test/java/org/apache/directory/scim/server/it/testapp/App.java
+++ b/scim-server/src/test/java/org/apache/directory/scim/server/it/testapp/App.java
@@ -23,7 +23,7 @@ import jakarta.enterprise.context.ApplicationScoped;
 import jakarta.enterprise.inject.Produces;
 import jakarta.ws.rs.core.Application;
 import org.apache.directory.scim.server.configuration.ServerConfiguration;
-import org.apache.directory.scim.server.rest.ScimResourceHelper;
+import org.apache.directory.scim.server.rest.ScimpleFeature;
 
 import java.util.Set;
 
@@ -34,7 +34,7 @@ public class App extends Application {
 
   @Override
   public Set<Class<?>> getClasses() {
-    return ScimResourceHelper.getScimClassesToLoad();
+    return Set.of(ScimpleFeature.class);
   }
 
   @Produces
diff --git a/support/spring-boot/src/main/java/org/apache/directory/scim/spring/ScimpleSpringConfiguration.java b/support/spring-boot/src/main/java/org/apache/directory/scim/spring/ScimpleSpringConfiguration.java
index 615664f6..af03afec 100644
--- a/support/spring-boot/src/main/java/org/apache/directory/scim/spring/ScimpleSpringConfiguration.java
+++ b/support/spring-boot/src/main/java/org/apache/directory/scim/spring/ScimpleSpringConfiguration.java
@@ -29,10 +29,10 @@ import org.apache.directory.scim.core.repository.SelfIdResolver;
 import org.apache.directory.scim.core.schema.SchemaRegistry;
 import org.apache.directory.scim.protocol.UserResource;
 import org.apache.directory.scim.server.configuration.ServerConfiguration;
+import org.apache.directory.scim.server.rest.EtagGenerator;
 import org.apache.directory.scim.server.rest.RequestContext;
-import org.apache.directory.scim.server.rest.ScimResourceHelper;
+import org.apache.directory.scim.server.rest.ScimpleFeature;
 import org.apache.directory.scim.server.rest.UserResourceImpl;
-import org.apache.directory.scim.server.rest.EtagGenerator;
 import org.apache.directory.scim.spec.resources.ScimResource;
 import org.glassfish.hk2.utilities.binding.AbstractBinder;
 import org.glassfish.jersey.server.ResourceConfig;
@@ -44,7 +44,10 @@ import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 
 import java.lang.annotation.Annotation;
-import java.util.*;
+import java.util.Arrays;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
 
 /**
  * Autoconfigures default beans needed for Apache SCIMple.
@@ -111,7 +114,7 @@ public class ScimpleSpringConfiguration {
   static class ScimpleJaxRsApplication extends Application {
     @Override
     public Set<Class<?>> getClasses() {
-      return new HashSet<>(ScimResourceHelper.getScimClassesToLoad());
+      return Set.of(ScimpleFeature.class);
     }
   }