From 4a6168abca93588a9ae90031fc6ed1cfe9b0f2e8 Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Wed, 15 Oct 2014 10:52:33 +0000
Subject: [PATCH] (CR-4811) Converted opendj3 code to use SearchRequest like API

---
 opendj-server3x-adapter/src/main/java/org/forgerock/opendj/adapter/server3x/Adapters.java |   31 +++++++++++++++++++++----------
 1 files changed, 21 insertions(+), 10 deletions(-)

diff --git a/opendj-server3x-adapter/src/main/java/org/forgerock/opendj/adapter/server3x/Adapters.java b/opendj-server3x-adapter/src/main/java/org/forgerock/opendj/adapter/server3x/Adapters.java
index e4ce2d8..7e088a0 100644
--- a/opendj-server3x-adapter/src/main/java/org/forgerock/opendj/adapter/server3x/Adapters.java
+++ b/opendj-server3x-adapter/src/main/java/org/forgerock/opendj/adapter/server3x/Adapters.java
@@ -27,7 +27,6 @@
 
 import java.net.InetAddress;
 import java.net.UnknownHostException;
-import java.util.LinkedHashSet;
 
 import org.forgerock.opendj.ldap.AbstractSynchronousConnection;
 import org.forgerock.opendj.ldap.ByteString;
@@ -37,8 +36,8 @@
 import org.forgerock.opendj.ldap.DN;
 import org.forgerock.opendj.ldap.DecodeException;
 import org.forgerock.opendj.ldap.DecodeOptions;
-import org.forgerock.opendj.ldap.LdapException;
 import org.forgerock.opendj.ldap.IntermediateResponseHandler;
+import org.forgerock.opendj.ldap.LdapException;
 import org.forgerock.opendj.ldap.ResultCode;
 import org.forgerock.opendj.ldap.SearchResultHandler;
 import org.forgerock.opendj.ldap.controls.Control;
@@ -72,8 +71,10 @@
 import org.opends.server.protocols.internal.InternalClientConnection;
 import org.opends.server.protocols.internal.InternalSearchListener;
 import org.opends.server.protocols.internal.InternalSearchOperation;
+import org.opends.server.protocols.internal.Requests;
 import org.opends.server.types.AuthenticationInfo;
 import org.opends.server.types.DirectoryException;
+import org.opends.server.types.SearchFilter;
 import org.opends.server.types.SearchResultEntry;
 import org.opends.server.types.SearchResultReference;
 
@@ -127,7 +128,7 @@
         try {
             icc = new InternalClientConnection(to(userDN));
         } catch (DirectoryException e) {
-            throw new IllegalStateException(e.getMessage());
+            throw new IllegalStateException(e.getMessage(), e);
         }
         return newConnectionFactory(icc);
     }
@@ -217,14 +218,24 @@
                     }
                 };
 
-                final InternalSearchOperation internalSO =
-                        icc.processSearch(valueOf(request.getName()), request.getScope(),
-                                request.getDereferenceAliasesPolicy(), request.getSizeLimit(),
-                                request.getTimeLimit(), request.isTypesOnly(), to(request.getFilter()),
-                                new LinkedHashSet<String>(request.getAttributes()), to(request.getControls()),
-                                internalSearchListener);
+                final SearchFilter filter = toSearchFilter(request.getFilter());
+                final org.opends.server.protocols.internal.SearchRequest sr =
+                    Requests.newSearchRequest(toDN(request.getName()), request.getScope(), filter)
+                        .setDereferenceAliasesPolicy(request.getDereferenceAliasesPolicy())
+                        .setSizeLimit(request.getSizeLimit())
+                        .setTimeLimit(request.getTimeLimit())
+                        .setTypesOnly(request.isTypesOnly())
+                        .addAttribute(request.getAttributes())
+                        .addControl(to(request.getControls()));
+                return getResponseResult(icc.processSearch(sr, internalSearchListener));
+            }
 
-                return getResponseResult(internalSO);
+            private org.opends.server.types.DN toDN(DN dn) {
+                try {
+                    return org.opends.server.types.DN.valueOf(dn.toString());
+                } catch (DirectoryException e) {
+                    throw new IllegalStateException(e.getMessage(), e);
+                }
             }
 
             @Override

--
Gitblit v1.10.0