directory-api mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Pierre-Arnaud Marcelot ...@marcelot.net>
Subject Re: Paged Results Control
Date Wed, 29 Jun 2011 13:15:10 GMT
Actually this is a little more complex...

Initially Studio was only based on JNDI and some of its APIs have been spread all over the
place.
When, we decided to include the LDAP API and offer the choice to select the type of network
provider (either JNDI or Apache Directory LDAP API), we evaluated the impact on the existing
code.
It was huge... And we decided to wrap/convert a few elements of the LDAP API to the JNDI API,
as a first step at least...

This is especially true for the controls interface which is present in a significant number
of classes in Studio.

This is why you're not finding a direct reference to the PagedResultsImpl class in Studio's
code. Controls are converted from and to JNDI controls as OpaqueControl instances in the convertControls()
methods of the org.apache.directory.studio.connection.core.io.api.DirectoryApiConnectionWrapper
class.

We use the JNDI PagedResultsControl in the org.apache.directory.studio.connection.core.StudioPagedResultsControl
class where it's wrapped.

I'm going to test your code on my OpenLDAP server to see if I get the same results.

Regards,
Pierre-Arnaud 

On 29 juin 2011, at 14:28, Daniel Fisher wrote:

> I'm testing OpenLDAP 2.4.23 with bdb. Paged results work fine with JNDI and
> JLDAP, so I'm confident the server is configured correctly. I glanced at the
> studio code, but I didn't see anything that wasn't using or delegating to a
> JNDI PagedResultsControl. Can you point me to some source that uses
> org.apache.directory.shared.ldap.model.message.controls.PagedResultsImpl
> ? Thanks.
> 
> --Daniel Fisher
> 
> On Wed, Jun 29, 2011 at 3:02 AM, Pierre-Arnaud Marcelot <pa@marcelot.net>wrote:
> 
>> Hi Daniel,
>> 
>> Studio's current trunk embeds the LDAP API as a replacement for JNDI (you
>> can select the one you want on a connection basis).
>> I've tested a Paged Search using it on an OpenLDAP 2.4.24 server and it
>> worked fine.
>> It showed me the required number of results and I was able to move through
>> pages.
>> 
>> Although, it didn't work on all database backends, like the "cn=config"
>> database for instance.
>> It appears only "bdb" and "hdb" database backends support this control. [1]
>> 
>> Which database backend are you using for your "dc=vt,dc=edu" database  ?
>> 
>> Regards,
>> Pierre-Arnaud
>> 
>> [1] — http://www.openldap.org/lists/openldap-software/200402/msg00508.html
>> 
>> 
>> On 28 juin 2011, at 18:58, Daniel Fisher wrote:
>> 
>>> Can anyone provide some sample code for using the paged results control?
>>> This is basically what I'm doing now:
>>> 
>>>   PagedResultsImpl prc = new PagedResultsImpl();
>>>   prc.setCritical(true);
>>>   prc.setSize(5);
>>> 
>>>   SearchRequest request = new SearchRequestImpl();
>>>   request.setScope(SearchScope.SUBTREE);
>>>   request.setBase(new Dn("dc=vt,dc=edu"));
>>>   request.setFilter("(uid=*)");
>>>   request.addAllControls(new Control[] {prc, });
>>> 
>>> OpenLDAP is reporting:
>>> 
>>> conn=1014 op=1 SEARCH RESULT tag=101 err=2 nentries=0 text=paged results
>>> control value is absent
>>> 
>>> Thanks.
>>> 
>>> --Daniel Fisher
>> 
>> 


Mime
View raw message