Details

    • Type: Improvement Improvement
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 0.9.10
    • Fix Version/s: 0.9.18
    • Component/s: None
    • Labels:
      None

      Description

      The idea is to create a parser which only handle simple DNs, containing only ascii chars, no special chars, and no special cases like surrounding double quotes.

      If we meet one of those special charss, we throw an exception and fall back to the complex parser.

      We may gain some performance doing so.

        Activity

        Transition Time In Source Status Execution Times Last Executer Last Execution Date
        Open Open Resolved Resolved
        379d 6h 59m 1 Stefan Seelmann 29/Jul/09 08:36
        Resolved Resolved Closed Closed
        531d 10h 11m 1 Emmanuel Lecharny 11/Jan/11 17:47
        Emmanuel Lecharny made changes -
        Status Resolved [ 5 ] Closed [ 6 ]
        Emmanuel Lecharny made changes -
        Fix Version/s 0.9.18 [ 12314550 ]
        Fix Version/s 1.0.0-RC1 [ 12313151 ]
        Stefan Seelmann made changes -
        Status Open [ 1 ] Resolved [ 5 ]
        Assignee Stefan Seelmann [ seelmann ]
        Resolution Fixed [ 1 ]
        Show
        Stefan Seelmann added a comment - Fixed a while ago: http://svn.apache.org/viewvc?view=rev&revision=764073 http://svn.apache.org/viewvc?view=rev&revision=765066
        Hide
        Stefan Seelmann added a comment -

        I added two new DN parsers:

        1) An initial version of a fast parser (class FastLdapDnParser) that handles simple DNs. More precisely is handles the following cases:

        • only single RDNs are handled,
        • attribute type: strings and OIDs but not the RFC1779 "oid." prefix
        • values: as soon as a special character occurs ( '\' '+' '#' '"' ) an TooComplexExeption is thrown

        2) An Antlr based DN parser that is able to handle complex DNs. Atm it contains some workarounds but it passes all unit tests.

        The LdapDnParser class is now just a facade, that delegates parsing to the FastLdapDnParser and in case of an TooComplexException to the ComplexLdapDnParser.

        Next we need to review all the tests and need to cleanup the LdapDN, Rdn and AttributeTypeAndValue classes. There are also some open issues (DIRSERVER-1311, DIRSERVER-1285, DIRSERVER-1247) with DN handling.

        Show
        Stefan Seelmann added a comment - I added two new DN parsers: 1) An initial version of a fast parser (class FastLdapDnParser) that handles simple DNs. More precisely is handles the following cases: only single RDNs are handled, attribute type: strings and OIDs but not the RFC1779 "oid." prefix values: as soon as a special character occurs ( '\' '+' '#' '"' ) an TooComplexExeption is thrown 2) An Antlr based DN parser that is able to handle complex DNs. Atm it contains some workarounds but it passes all unit tests. The LdapDnParser class is now just a facade, that delegates parsing to the FastLdapDnParser and in case of an TooComplexException to the ComplexLdapDnParser. Next we need to review all the tests and need to cleanup the LdapDN, Rdn and AttributeTypeAndValue classes. There are also some open issues ( DIRSERVER-1311 , DIRSERVER-1285 , DIRSERVER-1247 ) with DN handling.
        Hide
        Emmanuel Lecharny added a comment -

        I have started something a while ago, it should be somewhere in my 35 workspaces

        Ok, just consider that I've done nothing, it's probably a better idea. I will have a look to it though this week-end, just to avoid duplication of effort.

        The wiki page is just a page I drafted one year ago to explain the LdapDN data structure.

        Show
        Emmanuel Lecharny added a comment - I have started something a while ago, it should be somewhere in my 35 workspaces Ok, just consider that I've done nothing, it's probably a better idea. I will have a look to it though this week-end, just to avoid duplication of effort. The wiki page is just a page I drafted one year ago to explain the LdapDN data structure.
        Hide
        Alex Karasulu added a comment -

        I don't think he has. He's been in front of me all day working on the client API. I think it's safe to take this one.

        Show
        Alex Karasulu added a comment - I don't think he has. He's been in front of me all day working on the client API. I think it's safe to take this one.
        Hide
        Stefan Seelmann added a comment -

        Hi Emmanuel, have you alredy started with this? Otherwise I would like to try to work on this issues.

        Show
        Stefan Seelmann added a comment - Hi Emmanuel, have you alredy started with this? Otherwise I would like to try to work on this issues.
        Hide
        Emmanuel Lecharny added a comment -

        Here is a wiki page describing the data structure used for DN :

        http://cwiki.apache.org/confluence/display/DIRxSRVx11/DN+Parsing

        Show
        Emmanuel Lecharny added a comment - Here is a wiki page describing the data structure used for DN : http://cwiki.apache.org/confluence/display/DIRxSRVx11/DN+Parsing
        Stefan Seelmann made changes -
        Summary Create a Fast DN parser handling simple DNS Create a Fast DN parser handling simple DNs
        Hide
        Stefan Seelmann added a comment -

        At ApacheCon we discussed to rewrite the complex parser using Antlr because we have some issues with the current parser, see DIRSERVER-1311 and DIRSERVER-1285.

        Show
        Stefan Seelmann added a comment - At ApacheCon we discussed to rewrite the complex parser using Antlr because we have some issues with the current parser, see DIRSERVER-1311 and DIRSERVER-1285 .
        Emmanuel Lecharny made changes -
        Field Original Value New Value
        Fix Version/s 1.0.0 [ 12313151 ]
        Fix Version/s 0.9.11 [ 12313120 ]
        Hide
        Emmanuel Lecharny added a comment -

        Not urgent. Will be done for 1.0.

        (BTW, DNS -> DNs, nothing to do with the DNS service

        Show
        Emmanuel Lecharny added a comment - Not urgent. Will be done for 1.0. (BTW, DNS -> DNs, nothing to do with the DNS service
        Emmanuel Lecharny created issue -

          People

          • Assignee:
            Stefan Seelmann
            Reporter:
            Emmanuel Lecharny
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development