Reinhard Poetz pisze: > Reinhard Poetz wrote: >> What about the developer? He could assemble pipelines this way: >> >> URL baseUrl = new URL("file:///C:/temp/"); >> Pipeline pipeline = new NonCachingPipeline(); >> pipeline.addComponent(new FileGenerator(baseUrl, "xyz.xml"); >> pipeline.addComponent(new XSLTTransformer(baseUrl, "xyz.xslt"); >> pipeline.addComponent(new XMLSerializer()); >> pipeline.invoke(new InvocationImpl(System.out)); > > uuups, small correction: > > 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));
Hmm, getting back to more complicated scenarios. Do you think that baseURL should be scoped (with "call" scope) Spring bean? Another question is weather we should still support "meta-protocols" like blockcontext: one. Currently it works following way: * if you ask for "blockcontext:" or "blockcontext:/" then you will get instance of BlockContextSource that implements TraversableSource (to list all blocks) and always returns null if it's asked for InputSource. * if you ask for blockcontext:/block_name/directory then casual FileSource is returned pointing to the filesystem path of block's root directory. In second case, blockcontext: works as a "meta-protocol" because its Factory never returns its instance. This leads to the issue that getURI()/getExternalForm() returns path beginning with "file:/" instead of "blockcontext:" which is bad IMHO. I think one should always expect the same protocol used in canonical representation of newly created URL in order to avoid confusion. WDYT? -- Grzegorz