From 910f7515f24056d91041c5956fe022ab9e43db66 Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Thu, 16 Oct 2014 13:41:38 +0000
Subject: [PATCH] Converted opendj3 code to use SearchRequest like API
---
opendj3-server-dev/src/server/org/opends/server/protocols/internal/InternalLDAPOutputStream.java | 49 +++++++++++++++++++++++++++++++------------------
1 files changed, 31 insertions(+), 18 deletions(-)
diff --git a/opendj3-server-dev/src/server/org/opends/server/protocols/internal/InternalLDAPOutputStream.java b/opendj3-server-dev/src/server/org/opends/server/protocols/internal/InternalLDAPOutputStream.java
index 166a123..0517e4c 100644
--- a/opendj3-server-dev/src/server/org/opends/server/protocols/internal/InternalLDAPOutputStream.java
+++ b/opendj3-server-dev/src/server/org/opends/server/protocols/internal/InternalLDAPOutputStream.java
@@ -26,30 +26,28 @@
*/
package org.opends.server.protocols.internal;
-
-
-import java.io.OutputStream;
import java.io.IOException;
import java.io.InputStream;
+import java.io.OutputStream;
import java.util.List;
import org.forgerock.i18n.LocalizableMessage;
-import org.opends.server.core.*;
import org.forgerock.opendj.io.ASN1;
import org.forgerock.opendj.io.ASN1Reader;
-import org.opends.server.protocols.ldap.*;
-import org.opends.server.types.*;
+import org.forgerock.opendj.ldap.ByteSequenceReader;
import org.forgerock.opendj.ldap.ByteString;
import org.forgerock.opendj.ldap.ByteStringBuilder;
-import org.forgerock.opendj.ldap.ByteSequenceReader;
+import org.opends.server.core.*;
+import org.opends.server.protocols.ldap.*;
+import org.opends.server.types.*;
+import static org.forgerock.opendj.ldap.DecodeException.*;
import static org.opends.messages.ProtocolMessages.*;
import static org.opends.server.protocols.internal.InternalClientConnection.*;
+import static org.opends.server.protocols.internal.Requests.*;
import static org.opends.server.protocols.ldap.LDAPConstants.*;
import static org.opends.server.util.ServerConstants.*;
-
-
/**
* This class provides an implementation of a
* {@code java.io.OutputStream} that can be used to facilitate
@@ -737,17 +735,30 @@
throws IOException
{
int messageID = message.getMessageID();
- SearchRequestProtocolOp request =
- message.getSearchRequestProtocolOp();
+ SearchRequestProtocolOp request = message.getSearchRequestProtocolOp();
InternalClientConnection conn = socket.getConnection();
- InternalSearchOperation op =
- new InternalSearchOperation(conn, nextOperationID(),
- messageID, message.getControls(), request.getBaseDN(),
- request.getScope(), request.getDereferencePolicy(),
- request.getSizeLimit(), request.getTimeLimit(),
- request.getTypesOnly(), request.getFilter(),
- request.getAttributes(), this);
+ DN baseDN = null;
+ SearchFilter filter;
+ try
+ {
+ baseDN = DN.valueOf(request.getBaseDN().toString());
+ filter = request.getFilter().toSearchFilter();
+ }
+ catch (DirectoryException e)
+ {
+ final String cause = (baseDN == null ? "baseDN" : "filter");
+ throw error(LocalizableMessage.raw("Could not decode " + cause), e);
+ }
+ SearchRequest sr = newSearchRequest(baseDN, request.getScope(), filter)
+ .setDereferenceAliasesPolicy(request.getDereferencePolicy())
+ .setSizeLimit(request.getSizeLimit())
+ .setTimeLimit(request.getTimeLimit())
+ .setTypesOnly(request.getTypesOnly())
+ .addAttribute(request.getAttributes())
+ .addControl(message.getControls());
+ InternalSearchOperation op = new InternalSearchOperation(
+ conn, nextOperationID(), messageID, sr, this);
op.run();
SearchResultDoneProtocolOp searchDone =
@@ -773,6 +784,7 @@
* @param searchEntry The matching search result entry to be
* processed.
*/
+ @Override
@org.opends.server.types.PublicAPI(
stability=org.opends.server.types.StabilityLevel.PRIVATE,
mayInstantiate=false,
@@ -803,6 +815,7 @@
* @param searchReference The search result reference to be
* processed.
*/
+ @Override
@org.opends.server.types.PublicAPI(
stability=org.opends.server.types.StabilityLevel.PRIVATE,
mayInstantiate=false,
--
Gitblit v1.10.0