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:03 UTC

[directory-scimple] branch jaxrs-feature created (now f2330493)

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

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


      at f2330493 Add Jakarta WS Feature

This branch includes the following new commits:

     new f2330493 Add Jakarta WS Feature

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



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

Posted by bd...@apache.org.
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);
     }
   }