From e4c0edea06c8fee28369f03f393b7d54b2b6235c Mon Sep 17 00:00:00 2001
From: Jean-Noël Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Fri, 16 Sep 2016 13:25:06 +0000
Subject: [PATCH] OPENDJ-3246 Return the CREST descriptor over REST for rest2ldap endpoints
---
opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/AbstractRequestHandler.java | 29 ++++++++++++++++++++++++++++-
1 files changed, 28 insertions(+), 1 deletions(-)
diff --git a/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/AbstractRequestHandler.java b/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/AbstractRequestHandler.java
index 4b02050..8a71663 100644
--- a/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/AbstractRequestHandler.java
+++ b/opendj-rest2ldap/src/main/java/org/forgerock/opendj/rest2ldap/AbstractRequestHandler.java
@@ -15,6 +15,8 @@
*/
package org.forgerock.opendj.rest2ldap;
+import org.forgerock.api.models.ApiDescription;
+import org.forgerock.http.ApiProducer;
import org.forgerock.json.resource.ActionRequest;
import org.forgerock.json.resource.ActionResponse;
import org.forgerock.json.resource.CreateRequest;
@@ -31,13 +33,14 @@
import org.forgerock.json.resource.ResourceResponse;
import org.forgerock.json.resource.UpdateRequest;
import org.forgerock.services.context.Context;
+import org.forgerock.services.descriptor.Describable;
import org.forgerock.util.promise.Promise;
/**
* An abstract base class from which request handlers may be easily implemented. The default implementation of each
* method is to invoke the {@link #handleRequest(Context, Request)} method.
*/
-public abstract class AbstractRequestHandler implements RequestHandler {
+public abstract class AbstractRequestHandler implements RequestHandler, Describable<ApiDescription, Request> {
/** Creates a new {@code AbstractRequestHandler}. */
protected AbstractRequestHandler() {
// Nothing to do.
@@ -96,4 +99,28 @@
protected <V> Promise<V, ResourceException> handleRequest(final Context context, final Request request) {
return new NotSupportedException().asPromise();
}
+
+ @Override
+ public ApiDescription api(ApiProducer<ApiDescription> producer) {
+ // api descriptions that are null will be ignored
+ return null;
+ }
+
+ @Override
+ public ApiDescription handleApiRequest(Context context, Request request) {
+ // api requests are handled at a higher level by org.forgerock.opendj.rest2ldap.DescribableRequestHandler.
+ // So this code is never reached.
+ throw new UnsupportedOperationException("This should be handled by "
+ + "org.forgerock.opendj.rest2ldap.DescribableRequestHandler.handleApiRequest()");
+ }
+
+ @Override
+ public void addDescriptorListener(Describable.Listener listener) {
+ // nothing to do
+ }
+
+ @Override
+ public void removeDescriptorListener(Describable.Listener listener) {
+ // nothing to do
+ }
}
--
Gitblit v1.10.0