Gianugo Rabellino wrote:
> > Ah ok, does this mean that if an expires date is set, you want to
> > cache the pipeline, regardless if all components in this 
> pipeline support
> > the Cacheable... interface?
> 
> Exactly. Meaning that the "expires" setting is a way to tell the 
> pipeline engine that you know better if and how long a resource is valid.
> 
> > I think, it is much better to completly remove this expires handling
> > from the current caching implementation and great an own 
> expires pipeline
> > implementation, that simply checks for the expire parameter and don't
> > care about the key/validity handling. This is why we now have 
> the pipelines
> > as own components, so we can make different implementations and don't
> > need to put everything into one implementation.
> 
> I've been thinking about it, and indeed it might make sense. My point, 
> however, is that there are two sides to consider:
> 
> 1. this ExpiresEnabledCachingProcessingPipeline would rely *a lot* on 
> the CachingProcessingPipeline, meaning that it would just be an 
> extension built on top of it and "falling back" to the default 
> implementation if an expires is not (anymore?) provided, so I'm not dead 
> sure that having a separate implementation is the best way to go, also 
> because of usability concerns;
> 
I see your point, but I'm not quiet sure if this is the way it should be.
If an expires date is set, the complete response is cached for this
duration - this is a simple 5 line implementation ( :) just kidding) where
you don't need much of the current caching implementation.
If no expires is set, well...then don't cache, perhaps.

> 2. HTTP expires: it should be in theory possible to set them from any 
> pipeline (and definitely this is what happens, since the code is in 
> AbstractProcessingPipeline), but I'm afraid it would be somehow 
> misleading to have a different behaviour (no internal use) depending on 
> the actual caching pipeline implementation.
Yes, I think it was me who put it into the AbstractProcessingPipeline, but
perhaps it's not correct at that place.

> 
> Agreed, anyhow: it would be cleaner, and I'll think about it. It would 
> also be the case to understand if and how this code might be integrated 
> in the CachingPointProcessingPipeline. Suggestions?
> 
No, hmm...really complicated...to be honest, I have currently no clue.

Carsten

Reply via email to