Return-Path: Delivered-To: apmail-directory-dev-archive@www.apache.org Received: (qmail 68828 invoked from network); 19 Jun 2008 01:42:46 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 19 Jun 2008 01:42:46 -0000 Received: (qmail 98623 invoked by uid 500); 19 Jun 2008 01:42:48 -0000 Delivered-To: apmail-directory-dev-archive@directory.apache.org Received: (qmail 98579 invoked by uid 500); 19 Jun 2008 01:42:48 -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 98568 invoked by uid 99); 19 Jun 2008 01:42:48 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 18 Jun 2008 18:42:48 -0700 X-ASF-Spam-Status: No, hits=2.0 required=10.0 tests=HTML_MESSAGE,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of akarasulu@gmail.com designates 209.85.198.234 as permitted sender) Received: from [209.85.198.234] (HELO rv-out-0506.google.com) (209.85.198.234) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 19 Jun 2008 01:41:59 +0000 Received: by rv-out-0506.google.com with SMTP id g37so6156131rvb.25 for ; Wed, 18 Jun 2008 18:42:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:sender :to:subject:mime-version:content-type:x-google-sender-auth; bh=wCZvTFUIPB/E1FTeMFkpZuppBNLx+xn99hAllUGJJww=; b=hdqe+ISRPq67YIQ+61kcTX/7r781BPU6U8YlxKsjaX3tMluYPpt3upN4ZXZKCBUQL2 PMJEPVcH4xkyxvimyuF7v4runH1BtKSH93twUiWv31wRgW03PdpdE72r+fh7jqaz0t1q TGhHDoNzPwzWyO/WJJPvlpBUmKE+fdDR8owvU= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:sender:to:subject:mime-version:content-type :x-google-sender-auth; b=PHqUiCj1B/sw1SxWq0MuY1O2/XCIeVyPd/Oc0qwOu686AgX8pE5vPi7beB7/eTD0RV ttpGT7LMD9bKozRgy5/8RdeDAxfk/3sY8oaTgmbdM46Cm1PmpBtmv/EengnPv32uwCmE JaCWjai5YoHGHM0jZa7f1k70DNhIR8idC5Eu0= Received: by 10.140.128.11 with SMTP id a11mr6001192rvd.232.1213839738121; Wed, 18 Jun 2008 18:42:18 -0700 (PDT) Received: by 10.141.113.13 with HTTP; Wed, 18 Jun 2008 18:42:18 -0700 (PDT) Message-ID: Date: Wed, 18 Jun 2008 21:42:18 -0400 From: "Alex Karasulu" Sender: akarasulu@gmail.com To: "Apache Directory Developers List" Subject: [ApacheDS] [Interceptors] Added new entry property to OperationContext MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_Part_5697_12594545.1213839738128" X-Google-Sender-Auth: 5119948b4d1838e3 X-Virus-Checked: Checked by ClamAV on apache.org ------=_Part_5697_12594545.1213839738128 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Hi Emmanuel, I just added a new entry property to the OperationContext implementation in the BB. So now we can cache the target entry of any operation instead of performing lookups all the time in various interceptors. The property allows getting and setting a ClonedServerEntry. This is useful because we can perform alterations on this entry and use getOriginalEntry() to get the original state of the entry before any modifications are made to that entry. The only tedious part to this is that we have to populate it at some point (some barrier or interceptor) or else all the code accessing this entry will need to check if it's null then do the lookup and call the setter. Rather than do this I was thinking we can eagerly load this in an interceptor or have it eagerly loaded right as the OperationContext enters the InterceptorChain via the chain itself. Perhaps there are other options like doing it in the constructors. Wondering what your thoughts are on the best place for this if we should at all leverage eager loading of this target entry. Thanks, Alex ------=_Part_5697_12594545.1213839738128 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Hi Emmanuel,

I just added a new entry property to the OperationContext implementation in the BB.  So now we can cache the target entry of any operation instead of performing lookups all the time in various interceptors.  The property allows getting and setting a ClonedServerEntry.  This is useful because we can perform alterations on this entry and use getOriginalEntry() to get the original state of the entry before any modifications are made to that entry.

The only tedious part to this is that we have to populate it at some point (some barrier or interceptor) or else all the code accessing this entry will need to check if it's null then do the lookup and call the setter.  Rather than do this I was thinking we can eagerly load this in an interceptor or have it eagerly loaded right as the OperationContext enters the InterceptorChain via the chain itself.  Perhaps there are other options like doing it in the constructors.

Wondering what your thoughts are on the best place for this if we should at all leverage eager loading of this target entry. 

Thanks,
Alex

------=_Part_5697_12594545.1213839738128--