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

---
 opendj3-server-dev/src/server/org/opends/server/extensions/DynamicGroupSearchThread.java |   43 ++++++++++++++++++++-----------------------
 1 files changed, 20 insertions(+), 23 deletions(-)

diff --git a/opendj3-server-dev/src/server/org/opends/server/extensions/DynamicGroupSearchThread.java b/opendj3-server-dev/src/server/org/opends/server/extensions/DynamicGroupSearchThread.java
index 7c9e93b..c0b8d49 100644
--- a/opendj3-server-dev/src/server/org/opends/server/extensions/DynamicGroupSearchThread.java
+++ b/opendj3-server-dev/src/server/org/opends/server/extensions/DynamicGroupSearchThread.java
@@ -25,30 +25,28 @@
  *      Portions Copyright 2014 ForgeRock AS
  */
 package org.opends.server.extensions;
+
 import org.forgerock.i18n.LocalizableMessage;
 import org.forgerock.i18n.slf4j.LocalizedLogger;
-
-
-
-import java.util.LinkedHashSet;
-
+import org.forgerock.opendj.ldap.ResultCode;
+import org.forgerock.opendj.ldap.SearchScope;
 import org.opends.server.api.DirectoryThread;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.protocols.internal.InternalClientConnection;
 import org.opends.server.protocols.internal.InternalSearchListener;
 import org.opends.server.protocols.internal.InternalSearchOperation;
-import org.forgerock.opendj.ldap.DereferenceAliasesPolicy;
-import org.opends.server.types.DirectoryException;
+import org.opends.server.protocols.internal.SearchRequest;
+import static org.opends.server.protocols.internal.Requests.*;
 import org.opends.server.types.DN;
+import org.opends.server.types.DirectoryException;
 import org.opends.server.types.LDAPURL;
 import org.opends.server.types.MembershipException;
-import org.forgerock.opendj.ldap.ResultCode;
 import org.opends.server.types.SearchFilter;
 import org.opends.server.types.SearchResultEntry;
 import org.opends.server.types.SearchResultReference;
-import org.forgerock.opendj.ldap.SearchScope;
 
 import static org.opends.messages.ExtensionMessages.*;
+import static org.opends.server.protocols.internal.InternalClientConnection.*;
 
 /**
  * This class implements a Directory Server thread that will be used to perform
@@ -114,28 +112,25 @@
    * Performs the set of searches and provides the results to the associated
    * member list.
    */
+  @Override
   public void run()
   {
-    InternalClientConnection conn =
-         InternalClientConnection.getRootConnection();
-    LinkedHashSet<String> attributes = new LinkedHashSet<String>(0);
-    //Include all the user attributes along with the ismemberof.
-    attributes.add("*");
-    attributes.add("ismemberof");
+    InternalClientConnection conn = getRootConnection();
     for (searchCounter = 0; searchCounter < baseDNs.length; searchCounter++)
     {
-      InternalSearchOperation searchOperation =
-           conn.processSearch(baseDNs[searchCounter], SearchScope.WHOLE_SUBTREE,
-                              DereferenceAliasesPolicy.NEVER, 0, 0,
-                              false, searchFilters[searchCounter], attributes,
-                              this);
+      DN baseDN = baseDNs[searchCounter];
+      SearchFilter filter = searchFilters[searchCounter];
+      // Include all the user attributes along with the ismemberof.
+      final SearchRequest request = newSearchRequest(baseDN, SearchScope.WHOLE_SUBTREE, filter)
+          .addAttribute("*", "ismemberof");
+      InternalSearchOperation searchOperation = conn.processSearch(request, this);
 
       ResultCode resultCode = searchOperation.getResultCode();
       if (resultCode != ResultCode.SUCCESS)
       {
         if (resultCode == ResultCode.NO_SUCH_OBJECT)
         {
-          logger.warn(WARN_DYNAMICGROUP_NONEXISTENT_BASE_DN, baseDNs[searchCounter],
+          logger.warn(WARN_DYNAMICGROUP_NONEXISTENT_BASE_DN, baseDN,
                   memberList.getDynamicGroupDN());
           continue;
         }
@@ -143,8 +138,8 @@
         {
           LocalizableMessage message =
                ERR_DYNAMICGROUP_INTERNAL_SEARCH_FAILED.get(
-                       baseDNs[searchCounter],
-                       searchFilters[searchCounter],
+                       baseDN,
+                       filter,
                        memberList.getDynamicGroupDN(),
                        resultCode,
                        searchOperation.getErrorMessage());
@@ -166,6 +161,7 @@
   /**
    * {@inheritDoc}
    */
+  @Override
   public void handleInternalSearchEntry(InternalSearchOperation searchOperation,
                                         SearchResultEntry searchEntry)
          throws DirectoryException
@@ -191,6 +187,7 @@
   /**
    * {@inheritDoc}
    */
+  @Override
   public void handleInternalSearchReference(
                    InternalSearchOperation searchOperation,
                    SearchResultReference searchReference)

--
Gitblit v1.10.0