cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Vadim Gritsenko <vadim.gritse...@verizon.net>
Subject Re: [PROBLEM] caching after map:aggregate
Date Fri, 21 Feb 2003 15:41:14 GMT
Klaus Bertram wrote:

> Vadim Gritsenko wrote:
>
>> Klaus Bertram wrote:
>>
>>> Hi all,
>>>
>>> it seems that there is a caching problem after the map:aggregate module
>>> in the followed transformer
>>> at version 2.0.4 and 2.0.5 it works well but not in 2.1 dev
>>>
>>> here a sample:
>>> <map:match pattern="*.html">
>>>   <map:aggregate element="site">
>>>     <map:part src="cocoon:/book-{1}.xml"/>
>>>     <map:part src="cocoon:/body-{1}.xml" label="content"/>
>>>   </map:aggregate>
>>>   <map:transform src="stylesheets/site2xhtml.xsl"/>
>>>   <map:serialize/>
>>> </map:match>
>>>
>>> <map:match pattern="body-*.xml">
>>>   <map:generate src="spezification/docs/test.xml"/>
>>>   <map:transform src="stylesheets/site2xhtml.xsl">
>>>     <map:parameter name="use-request-parameters" value="true"/>
>>>    </map:transform>
>>>   <map:serialize type="xml"/>
>>> </map:match>
>>>
>>> If index.html is called at the first time it works ok.
>>> If it call's the next times with index.html?id=22 or index.html?id=aass
>>> the first cached side after the aggregation are responded.
>>
>>
>>
>> From what I see, if you remove use-request-parameters parameter, all 
>> requests to the index.html must always return cached result, and 
>> request parameters should not affect this behavior. This means, for 
>> any request like "index.html", "index.html?id=111", 
>> "index.html?whatever=something", response always should be the same 
>> and from the cache.
>>
>> If Cocoon 2.0.4 does not return result from the cache, then it's a bug.
>
> I don't if this is a bug
> Is the content aggregation not a special part for caching?


No, it is not. Pipeline with aggregation is cached as a whole. Parts 
referenced by "cocoon" protocol could be cached separately, because they 
are separate pipelines.


> This means when a aggreagation is processed the caching module should
> look at the part caching key if it changed and generate a new cached 
> result?


If pipeline validity for given pipeline key has been changed, then whole 
result will be recreated.


> This can solved the problem ;)


I don't see a problem, because (when you remove use-request-parameters 
parameter) your sitemap is static thus one and only one cached result 
should be created for index.html and served regardless of request 
parameters.

If you want to vary response based on some request parameter, you need 
to include this request parameter into pipeline key and then results for 
every variation of input parameter will be cached independently. If you 
are using XSP, see cacheable.xsp to get an idea.

Vadim



Mime
View raw message