Apache Directory Project - [jira] Commented: (DIRSERVER-858) Allow subclassing LdapDN

This is Interesting: Free IT Magazines  
Home > Archive > Apache Directory Project > March 2007 > [jira] Commented: (DIRSERVER-858) Allow subclassing LdapDN





You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

Author [jira] Commented: (DIRSERVER-858) Allow subclassing LdapDN
Emmanuel Lecharny (JIRA)

2007-03-06, 7:11 am


[ https://issues.apache.org/jira/brow...e=3Dcom.atlass=
ian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12478354 ]=20

Emmanuel Lecharny commented on DIRSERVER-858:
---------------------------------------------

Parsing a DN is a pretty fast operation : on my desktop (pentium 3Ghz), I c=
an parse 120 000 dc=3Dexample, dc=3Dcom DN per second.=20

Your example is not correct. I assume it will work for "dc=3Dexample, dc=3D=
com" if you do a=20
bytes =3D StringTools.getBytesUtf8(dn);=20
but if you have a DN like : sn=3Dl=C3=A9charny, dc=3Dexample, dc=3Dcom, it'=
s simply not enough. The '=C3=A9' should be handled and escaped, and this =
is what the parser is doing.

Last point : LdapDN is not intended to be used out of the server.

However, if you propose a patch, we may consider to apply it. Don't forget =
to propose a patch for 1.0 and 1.5 version.

> Allow subclassing LdapDN
> ------------------------
>
> Key: DIRSERVER-858
> URL: https://issues.apache.org/jira/browse/DIRSERVER-858
> Project: Directory ApacheDS
> Issue Type: Improvement
> Components: ldap
> Affects Versions: 1.0.1, 1.5.0
> Reporter: Endi S. Dewata
>
> Currently when you create an LdapDN object from a given DN string the cod=

e will always parse the string into its RDN components.
> LdapDN dn =3D new LdapDN("dc=3Dexample,dc=3Dcom");
> The parsing code, however, depending on your application, could take up t=

o 5% of the time.
> For applications that require high performance, it would be great if we c=

ould create a subclass of LdapDN that will bypass the DN parsing code, or l=
azily parse the DN only when needed. See the following code:
> LdapDN dn =3D new MyLdapDN("dc=3Dexample,dc=3Dcom");
> SearchResponseEntry response =3D new SearchResponseEntryImpl(request.=

getMessageId());
> response.setObjectName(dn);
> response.setAttributes(attributes);
> The MyLdapDN class would be very simple:
> public class MyLdapDN extends LdapDN {
> public MyLdapDN(String dn) throws Exception {
> bytes =3D StringTools.getBytesUtf8(dn);
> }
> }
> Unfortunately this code is currently doesn't work because the the "bytes"=

field of LdapDN is private and the LdapDN.getNbBytes() and LdapDN.getBytes=
() methods require direct access to the field.
> The solution is simple, here are some alternatives:
> 1. Change the field access to protected.
> 2. Add LdapDN.setBytes() method.
> 3. Add LdapDN.getBytes() that can be overridden by the subclass, and chan=

ge the LdapDN.getNbBytes() and LdapDN.getBytes() to call this method.

--=20
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Sponsored Links






Free braindumps | Software forum | Database administration forum

Copyright 2003 - 2008 webservertalk.com