cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Daniel Fagerstrom <dani...@nada.kth.se>
Subject Re: Interblock communication
Date Wed, 20 Jun 2007 06:33:43 GMT
Reinhard Poetz skrev:
> Ralph Goers wrote:
>> Daniel Fagerstrom wrote:
>>> Letting all blocks share the same global session would lead to code 
>>> that would be hard to debug and reuse, so that would not be such a 
>>> good idea. We could think about having a local session for each 
>>> servlet service, but that is not implemented yet.
>>>
>>> What you currently do is that you have a "main" servlet service that 
>>> contain session handling etc and that calls other servlet services 
>>> that does there work without sessions. For me that is enough, but if 
>>> other people have use cases that require more, we can find some way 
>>> to extend it.
>>>
>>> /Daniel
>> Thanks for this info. This does raise concern although perhaps it is 
>> misplaced. I am working on a project that heavily uses portlets. The 
>> current portlet spec makes it difficult to share session attributes 
>> across the web application. The downside is that it leads to all 
>> kinds of kludges and performance problems. For example, you would 
>> like to call a single business service and have its data available to 
>> multiple portlets as each might simply provide different views of the 
>> data.  I could easily see the same sort of requirement with blocks.
>>
>> In general, the isolation is probably the correct approach, but only 
>> if there is a way to explicitly declare that certain objects should 
>> be shared.
>
> I'm not sure if it is directly helpful for your problem, but Spring 
> 2.x offers request, session and global-session scoped beans 
> (http://static.springframework.org/spring/docs/2.0.x/reference/beans.html#beans-factory-scopes-other).

>
>
That is one possibility. And as the Spring container is global another 
possibility is to let your multiple "view blocks" access the Spring bean 
directly.

A third possibility would be to make your "data" available as REST-style 
web services. Then the "view blocks" can access the data through servlet 
service protocol calls.

Then we could of course create some mechanism such that each servlet 
service has a local session that in some way extends and overrides the 
global one. Maybe using some special syntax for global session attribute 
names.

/Daniel


Mime
View raw message