On 26.03.2008 08:04, Carsten Ziegeler wrote:

What's the advantage of giving our components the responsibility to deal with strings that represent sources?

Isn't that what components are there for? Encapsulating commonly used functionality? Why should I extract that to the pipeline *instance* level? So writing pipelines is becoming a mess!

Hmm, I don't think so. Imagine a pipeline java api just taking a uri for the sources used in the pipeline. That's simple and easy. Now, you can use the source resolver on top of that, resolve your sources and you get a uri from your source that you can put into the pipeline api.
That's neither a mess nor does it require more java coding.

I'm not sure if we are talking about the same. If I take Reinhard's sample [1]

URL baseUrl = new URL("file:///C:/temp/");
Pipeline pipeline = new NonCachingPipeline();
pipeline.addComponent(new FileGenerator(new URL(baseUrl, "xyz.xml"));
pipeline.addComponent(new XSLTTransformer(new URL(baseUrl, "xyz.xslt"));
pipeline.addComponent(new XMLSerializer());
pipeline.invoke(new InvocationImpl(System.out));

and want to add caching to it and therefore have to switch from URL to Source and from FileGenerator to CachingFileGenerator - sorry, but that's a mess since this means pretty much rewriting the application for adding caching. Why is this page so slow? Oh, sorry we forgot this pipeline to switch to caching ...

Why can't high-level pipeline components use low-level components like SourceResolver? Then it is up to the component to use either URLs or Sources. That would be like implementing CacheableProcessingComponent or not.

That's why I wonder where a pipeline writer gets into uri resolving at all? Why does he have to care about URLs or Sources? That's the component developer's concern.

I really wonder if I miss something. All this seems to be too obvious to me ...

Joerg

[1] http://marc.info/?l=xml-cocoon-dev&m=120646488429681&w=4

Reply via email to