Kalpesh,

again I'd be very interested to see your additions. Mind creating yet another 
enhancement request and attaching your changes (as a patch, if possible).

Thanks
Werner

On Mon, 13 Sep 2004 10:22:12 +0530, Kalpesh Patel wrote:

>
>Yes its a listener for changes to Business objects.
>A sample use cases can be :-
>1)Let say you have a online catalog of multiple Vendors. For performance
>reasons
>a)You have cached the results of searches made by buyers.
>b)Your tag library for displaying product info might have a LRU cache of
>html generated after doing xslt transformation.
>c)and similarly you might have cached some information.
>
>Now to stay competitive in market you poll some competitor site and as soon
>as prices changes there you change your prices automatically(within a
>certain limit).
>2)Similarly the Vendors can use a Desktop tool to edit their product catalog
>and upload it. They can remove/add/edit existing products.
>3)Vendors can change visibility of products to certain types of buyers.
>3)Similarly you have certain other caches of business objects.
>
>Now the problem was that we have to clear these intermediate caches if the
>business object was changed due to any reason. One solution was to make it
>explicit in the DAO classes i.e. explicitly fireListeners in the
>createProduct,updateProduct,removeProduct,updatePrices method. But the
>problem was that if one of the developer forgets to call fireListeners then
>its a problem. So to make it implicit we decided to push it to castor and
>now developers are free to fireListener.They just need to register their
>cache as a listener to object update events.
>
>Also now the listener and all this code for firing events is generic to all
>business objects.
>
>-Kalpesh
>
>-----Original Message-----
>From: Bruce Snyder [mailto:[EMAIL PROTECTED]
>Sent: Friday, September 10, 2004 10:09 PM
>To: [EMAIL PROTECTED]
>Subject: Re: [castor-dev] CastorObjectChangeListener
>
>
>
>Kalpesh Patel wrote:
>
>> We also implemented a CastorObjectChangeListener.The basic purpose of this
>> is that if your application wants to listen to changes in particular type
>of
>> objects then it can register more then one listener with the JDO like
>>
>> CastorObjectChangeListener listener =
>InventoryChangeListener.getInstance();
>> Class clazz = Inventory.class;
>> jdo.registerCastorObjectChangeListener(clazz,listener);
>>
>> Now throughout the application if anyone changes any object of type
>> Inventory an objectUpdate() method will be called on the listener and it
>can
>> do whatever it wants.
>>
>> We had several Business Delegates caching intermediate results (sort of
>> value list handlers). Now we register them with castor and simultaneously
>if
>> someone changes the data, we can clear the model and run a fresh search.
>>
>>
>> If you are interested we can commit this code also?
>
>This sounds interesting. So it's a listener for changes to your business
>objects, correct? Can you outline some additional use cases for it?
>
>Bruce
>--
>perl -e 'print
>unpack("u30","<0G)[EMAIL PROTECTED]&5R\\"F9E<G)E=\\$\\!F<FEI+F-O;0\\`\\`");'
>
>The Castor Project
>http://www.castor.org/
>
>Apache Geronimo
>http://incubator.apache.org/projects/geronimo.html
>
>
>
>-----------------------------------------------------------
>If you wish to unsubscribe from this mailing, send mail to
>[EMAIL PROTECTED] with a subject of:
>        unsubscribe castor-dev
>
>
>
>----------------------------------------------------------- 
>If you wish to unsubscribe from this mailing, send mail to
>[EMAIL PROTECTED] with a subject of:
>        unsubscribe castor-dev
>



----------------------------------------------------------- 
If you wish to unsubscribe from this mailing, send mail to
[EMAIL PROTECTED] with a subject of:
        unsubscribe castor-dev

Reply via email to