You're right. But it's a bad idea to use the cocoon:// protocol as the source for JXTemplateGenerator (as it would be also for TraxTransformer, for example). In effect you are generating a new "program" for every request, that must be recompiled for every request, which is clearly _very_ inefficient. Perhaps caching could fix this in some cases, but it seems like a bad practice in the first place.

In Linotype I saw some other strange uses of the cocoon:// protocol that appear to be very bad for performance:
There's a pipeline that uses the directory generator to read a directory, and transforms it using xslt into a cinclude template. Another pipeline uses this as a source for its generator using the cocoon:// protocol. This would seem to defeat any possibility of compiling the cinclude template (or am I missing something?)


Regards,

Chris

Reinhard Pötz wrote:



From: Sylvain Wallez [mailto:[EMAIL PROTECTED]


Reinhard Pötz wrote:




If I call the method getLastModified() for cocoon://
sources the return value is always 0. Is this the correct behaviour?




Yes !



If yes at least the JXTemplateGenerator (line 2868) doesn't work correctly and I think some more components too.



Didn't look at it, but 2.1 components should rely on Excalibur Sources and the associated SourceResolver (looked up in the component manager) to use the Source's validity.



Thank you!


If I understand this correctly I get with

source.getValidity()

the SourceValidity. But if I call e.g. cocoon://blablalba.xml this
method returns null. The default pipe is the caching pipe
and I use it with

<map:pipeline>
...
</map:pipeline>

If I resolve a resource using the file protocol a SourceValidity object
is returned.

Do I have to change something to get a SourceValidity object returned
from a cocoon source?

Reinhard











Reply via email to