cocoon-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Robin Wyles <...@robinwyles.com>
Subject Re: C2.2 and OpenSessionInViewInterceptor
Date Mon, 10 Dec 2007 18:16:27 GMT
Thanks Carsten, this is just what I needed.

I couldn't find any documentation or any examples of this in use, so  
if anyone else is interested this is what you need to do to register  
a sitemap listener...

1. Create a class implementing  
org.apache.cocoon.sitemap.EnterSitemapEventListener and/or  
org.apache.cocoon.sitemap.LeaveSitemapEventListener

2. Define it as a spring bean in a file at config/spring/*.xml  
relative to your sitemap, so at COB-INF/config/spring/*.xml if you  
want the listener registered with a block's default sitemap. The  
relative path is important as the listener must be bound to a  
specific sitemap. Therefore if you want to attach your listener to a  
sub-sitemap you must put your sub-sitemap in its own directory and  
put the spring config relative to that.

3. That's it, all requests to that sitemap will fire the registered  
listeners.

Robin


On 10 Dec 2007, at 13:10, Carsten Ziegeler wrote:

> Robin Wyles wrote:
>> Hi,
>>
>> I would like to implement something similar to Spring's
>> OpenSessionInViewInterceptor [1] in Cocoon 2.2 - the idea being to  
>> open
>> a Hibernate session when specific pipelines are called, binding it to
>> the current thread and then closing it when the pipeline execution  
>> (and
>> therefore the view) has finished. I know I could use the
>> OpenSessionInViewFilter [2], but the URL mapping is unwieldy and  
>> is not
>> fine grained enough for my needs, and I'm not even sure if the filter
>> would be called when pipelines are called by other blocks (anyone  
>> know?).
>>
>> My first idea was to extend one of the existing pipeline  
>> implementations
>> but it seems this won't work for pipelines that include calls to
>> flowscript functions as these are handled before the pipeline is  
>> set up.
>> Ideally I would like to enable this functionality for specific
>> pipelines, so if anyone has any ideas about how I could go about
>> implementing this I'd love to hear it!
>>
> I can't give the details, but we added sitemap listeners for things  
> like
> these. Basically, you can register a listener for a specific  
> sitemap and
> this is notified when the whole request has been processed by Cocoon -
> so you can clean up afterwards.
>
> Carsten
>
>> Thanks,
>>
>> Robin
>>
>>
>> [1]
>> http://static.springframework.org/spring/docs/2.0.6/api/org/ 
>> springframework/orm/hibernate3/support/ 
>> OpenSessionInViewInterceptor.html
>>
>> [2]
>> http://static.springframework.org/spring/docs/2.0.6/api/org/ 
>> springframework/orm/hibernate3/support/OpenSessionInViewFilter.html
>
>
> -- 
> Carsten Ziegeler
> cziegeler@apache.org
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@cocoon.apache.org
> For additional commands, e-mail: users-help@cocoon.apache.org
>


Mime
View raw message