Return-Path: Delivered-To: apmail-directory-dev-archive@www.apache.org Received: (qmail 97377 invoked from network); 19 Feb 2011 12:40:38 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 19 Feb 2011 12:40:38 -0000 Received: (qmail 24135 invoked by uid 500); 19 Feb 2011 12:40:38 -0000 Delivered-To: apmail-directory-dev-archive@directory.apache.org Received: (qmail 23935 invoked by uid 500); 19 Feb 2011 12:40:35 -0000 Mailing-List: contact dev-help@directory.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: "Apache Directory Developers List" Delivered-To: mailing list dev@directory.apache.org Received: (qmail 23928 invoked by uid 99); 19 Feb 2011 12:40:34 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 19 Feb 2011 12:40:34 +0000 X-ASF-Spam-Status: No, hits=-0.7 required=5.0 tests=FREEMAIL_FROM,RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of akarasulu@gmail.com designates 74.125.82.44 as permitted sender) Received: from [74.125.82.44] (HELO mail-ww0-f44.google.com) (74.125.82.44) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 19 Feb 2011 12:40:26 +0000 Received: by wwa36 with SMTP id 36so4666665wwa.1 for ; Sat, 19 Feb 2011 04:40:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:content-type; bh=U3YgiXA69CnKsFSdhaArzLo29DR8XMQ8H5CyyZ22wsY=; b=WiySSynOXAJ7UVroDTkpVSWxLBStn/DyZF2KT+6X1GjOIbQEAsfHRdYxP5opLpRL5I m86G23JK1AFeDdlDQw55UTZHG8gn0R59asWk1pxQz5tRwchpvUeITD2oTU018M9lEvRv DxluyM9BbMwx4h9q6Qp+nu+WM4QICCBPvjx7E= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:date :x-google-sender-auth:message-id:subject:from:to:content-type; b=WmkjMZxpKt48dJ3HWb6lIv/ktOdWkPrM+KNHrDz5U2TzsjpHcH68uO58UCc5fUefYY /NLqiEeAPCUXAa21FTRCo1GKS2vmrYMqbOVPimiaMDoERY9Y3Iw7vCKryJFnjdNNprwB oEul4+dqTNreHoUM830MdcNSNSMaFLtdeRLQA= MIME-Version: 1.0 Received: by 10.216.48.211 with SMTP id v61mr1608633web.35.1298119196269; Sat, 19 Feb 2011 04:39:56 -0800 (PST) Sender: akarasulu@gmail.com Received: by 10.216.51.15 with HTTP; Sat, 19 Feb 2011 04:39:56 -0800 (PST) In-Reply-To: <4D5F5053.2040202@gmail.com> References: <4D5F5053.2040202@gmail.com> Date: Sat, 19 Feb 2011 14:39:56 +0200 X-Google-Sender-Auth: 0D49SnPYmnL8xW9UOsLIOEI1u60 Message-ID: Subject: Re: [Shared] [LDAP] [Codec] Anyone remember why we have two LDAP ProtocolDecoder implementations? From: Alex Karasulu To: Apache Directory Developers List , elecharny@apache.org Content-Type: text/plain; charset=ISO-8859-1 X-Virus-Checked: Checked by ClamAV on apache.org On Sat, Feb 19, 2011 at 7:08 AM, Emmanuel Lecharny wrote: > On 2/19/11 5:21 AM, Alex Karasulu wrote: >> >> I found these two classes here [0] and here [1]. Both implement >> ProtocolDecoder and seem to be almost identical in capability. >> >> One seems to have been written for the client and one for the server >> but I don't think it makes a difference. Perhaps these two can be >> consolidated into single implementation. > > Definitively, yes. >> >> Incidentally the LdapProtocolEncoder is shared by both >> LdapProtocolCodecFactory implementations in shared and in apacheds. >> This means if we consolidate these two classes, [0] and [1], then we >> can easily consolidate the two codec factories. > > Ok, let me explain why we have 2 classes. The older one was the server one, > which was using a complex pattern with a callback, a blocking and not > blocking decode methods, etc. The newer one was developed for the client, > and is what we should have had from day one in the server. > > Both implementations should have been merged a while back, but it was not > simple and some convergence started last september, not finished of course. > > So, yes, we should have one single implementation. The client implementation > is probably the correct base to start with. You mind looking into merging these two for me while I push forward with remaining issues? I want to make the protocol codec factory pluggable as well as the other things so later on if we like we can whip up different factories for other MINA like frameworks. Regards, Alex