OK, but where should I post the patch?[extension to] DirectoryGenerator [...]That's interesting. I guess, however, than that the best solution would be patching the real DirectoryGenerator (in doing so please sync the *TraversableGenerator in scratchpad too).
another question: I separated the real directory-scanner from the generator code. in what package should I put this helper-classes?
=======================
[...] PipelineDirectoryGenerator [...]Delegating the inclusion to another pipeline looks pretty neat and definitely useful, but I don't feel like this should be the job of a monolithic generator. How about turning that part into a transformer who reads the DG/TG output and does exactly what you're planning?
I thougt of it, but this approach leads to the current design (I think): a special directory-scanner for XML files, a special directory-scanner for HTML files, a special directory-scanner for Image files etc... and the merge the output via aggregation and apply a advanced stylesheet...
or in addition to the XIncludeTransformer a HTMLIncludeTransformer, a ImagePropertyIncludeTransformer a XXXIncludeTransformer.
and the switching between the different files must also be done in the transformers.
the current design:
<map:pipeline>
<map:generate type="pipeline-directory" src=".">
<map:parameter name="include" value="\.(xml|html|jpg|gif|png)$" />
<map:parameter name="contentPipeline" value="cocoon:/content-pipeline" />
</map:generate><map:serialize type="xml"/> </map:pipeline>
<map:pipeline internal-only="true"> <map:match pattern="content-pipeline**">
<map:match pattern="content-pipeline/**other**.xml">
<map:generate src="{1}other{2}.xml"/>
<map:transform src="extractOtherTitles.xsl"/>
<map:serialize type="xml"/>
</map:match> <map:match pattern="content-pipeline/**.xml">
<map:generate src="{1}.xml"/>
<map:transform src="extractTitles.xsl"/>
<map:serialize type="xml"/>
</map:match> <map:match pattern="content-pipeline/**.html">
<map:generate type="html" src="{1}.html"/>
<map:transform src="extractTitles.xsl"/>
<map:serialize type="xml"/>
</map:match> <map:match pattern="content-pipeline/**">
<map:generate type="fileinfo" src="{1}"/>
<map:serialize type="xml"/>
</map:match>
</map:match>
</map:pipeline>would then look like this (?)
<map:pipeline>
<map:generate type="directory" src=".">
<map:parameter name="include" value="\.(xml|html|jpg|gif|png)$" /> <map:parameter name="mime-type-match:text/xml" value="\.xml$" />
<map:parameter name="mime-type-match:text/xml/other"
value=".*other.*\.xml$" />
<map:parameter name="mime-type-match:text/html" value="\.html$" />
<map:parameter name="mime-type-match:image"
value="\.(jpg|gif|png)$ />
</map:generate><map:transform src="prepareIncludeTransformers.xsl"/>
<map:transform type="xinclude"/>
<map:transform type="htmlinclude"/>
<map:transform type="imageinfoinclude"/> <map:transform src="extractTitlesAndFileInfo.xsl"/>
<map:serialize type="xml"/>
</map:pipeline>
the advantage of the second approach is, that all is together in one pipe.
the disadvantage is, that for all generators we need a equivalent transformer.
best regards, alfred
