Details

    • Type: Sub-task Sub-task
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 1.0.0-M1
    • Fix Version/s: 1.0.0-M2
    • Component/s: None
    • Labels:
      None
    • Environment:
      All

      Description

      The codec can offer different protocol codec factories since it is a factory of protocol codecs. This might allow us to leverage other network libraries like Grizzly, and Netty 3.0 in addition to Apache MINA, which helps compare differences.

        Activity

        Alex Karasulu created issue -
        Alex Karasulu made changes -
        Field Original Value New Value
        Original Estimate 336h [ 1209600 ] 48h [ 172800 ]
        Remaining Estimate 336h [ 1209600 ] 48h [ 172800 ]
        Hide
        Alex Karasulu added a comment -

        Once we can determine whether or not we can use the same protocol codec factory for both the server and the client we know just how to make this piece pluggable.

        We will need to separate this out into it's own ldap-protocol-codec module. It will not be an API. The server and studio will access this component's interface which is a MINA interface (ProtocolCodecFactory) via the LdapCodecService.

        Show
        Alex Karasulu added a comment - Once we can determine whether or not we can use the same protocol codec factory for both the server and the client we know just how to make this piece pluggable. We will need to separate this out into it's own ldap-protocol-codec module. It will not be an API. The server and studio will access this component's interface which is a MINA interface (ProtocolCodecFactory) via the LdapCodecService.
        Hide
        Emmanuel Lecharny added a comment -

        IMO, there is no rational reason not to have one single codec. I totally agree with you : it should even be a plugable part so that we can use something different than MINA. Should not be that complex to do...

        Show
        Emmanuel Lecharny added a comment - IMO, there is no rational reason not to have one single codec. I totally agree with you : it should even be a plugable part so that we can use something different than MINA. Should not be that complex to do...
        Hide
        Emmanuel Lecharny added a comment -

        I have decoupled the codec so that we can invoke the encoder/decoder without any knowledge about the underlying network. We now have to externalize the mina related classes (package org.apache.directory.shared.ldap.codec.protocol.mina) into their own module.

        Show
        Emmanuel Lecharny added a comment - I have decoupled the codec so that we can invoke the encoder/decoder without any knowledge about the underlying network. We now have to externalize the mina related classes (package org.apache.directory.shared.ldap.codec.protocol.mina) into their own module.
        Hide
        Alex Karasulu added a comment -

        This is great work. You want to have some fun and try to make it a pluggable module? Or you want me to tackle that?

        Show
        Alex Karasulu added a comment - This is great work. You want to have some fun and try to make it a pluggable module? Or you want me to tackle that?
        Hide
        Alex Karasulu added a comment -

        A single ProtocolCodecFactory implementation is now used by everything and it is pluggable. By default the MINA implementation is used. If another new implementation is pushed into the pluginDirectory then that implementation will be used.

        We still depend on MINA's ProtocolCodecFactory class but it's a very trivial factory that can wrap other implementations using for example Grizzley.

        Show
        Alex Karasulu added a comment - A single ProtocolCodecFactory implementation is now used by everything and it is pluggable. By default the MINA implementation is used. If another new implementation is pushed into the pluginDirectory then that implementation will be used. We still depend on MINA's ProtocolCodecFactory class but it's a very trivial factory that can wrap other implementations using for example Grizzley.
        Alex Karasulu made changes -
        Status Open [ 1 ] Closed [ 6 ]
        Resolution Fixed [ 1 ]

          People

          • Assignee:
            Unassigned
            Reporter:
            Alex Karasulu
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Due:
              Created:
              Updated:
              Resolved:

              Time Tracking

              Estimated:
              Original Estimate - 48h
              48h
              Remaining:
              Remaining Estimate - 48h
              48h
              Logged:
              Time Spent - Not Specified
              Not Specified

                Development