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

        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
        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 .
        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
        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
        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
        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
        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.
        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

          People

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

            Dates

            • Created:
              Updated:
              Resolved:

              Development