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);
}
}