Javier, thank you for replying.
For many additional reasons, I need to do this in a generator. It's
not my call on this. So I need to connect the XMLFilterImpl to the
Generator.
I know it can be done, but looking for the simplest and cleanest way.


On Thu, Dec 6, 2012 at 12:25 PM, Javier Puerto <[email protected]> wrote:
> Hi Mansour,
>
> 2012/12/6 Mansour Al Akeel <[email protected]>
>>
>> Hello all,
>> I am using C2.2 for this project, and I need to add some functionality
>> to the current file generator (ie, logging and warning for broken
>> links). I know this can be done in a transformer,
>> but since it's required in many places, I want it in the Generator.
>>
>>
>> Since the generator, generates SAX events, the simplest way is to
>> insert an XMLFilterImpl that does the logging, between the generator
>> and the consumer. For example:
>
>
> I think that use a Transformer is the Cocoon way and simplest (no need of
> java code).
>
> <map:pipeline match="myCustomFileGenerator/**">
>   <map:generator src="{1}"/>
>   <map:transform src="yourXSLT"/>
>   <mao:serialize/>
> </map:pipeline>
>
> Then you can use from other pipelines in the same sitemap like this:
>
> <map:pipeline match="my/service">
>   <map:generate src="cocoon:/myCustomFileGenerator/your/file/to/consume"/>
>   ....
>
> From another block you can consume also with the sevlet: protocol, just add
> the name of the block with the service you want to consume:
> <map:pipeline match="my/service">
>   <map:generate
> src="servlet:myBlock:/myCustomFileGenerator/your/file/to/consume"/>
>
>
>>
>> Currently:
>>
>> FileGenerator --> events ---> XMLConsumer
>>
>> I need it to be:
>>
>> FileGenerator --> events --> XMLFilterImpl ---> XMLConsumer
>> OR
>> FileGenerator --> events ---> XMLConsumer --> XMLFilterImpl
>>
>> The issue is I couldn't find any example on connecting and setting up
>> a filter between the generator and the consumer.
>> Additionally, setting the contentHandler doesn't seem to have any
>> effect. Currently this is what I have and the events are not passing
>> through LinkValidator Filter.
>>
>>
>> public class MyGenerator extends FileGenerator {
>>
>>         @Override
>>         public void setup(SourceResolver resolver, Map objectModel, String
>> src, Parameters parameters) throws ProcessingException, SAXException,
>> IOException {
>>
>>                 super.setup(resolver, objectModel, src, parameters);
>>
>>                 LinkValidator validator = new
>> LinkValidator(this.contentHandler);
>>
>>                 this.setContentHandler(validator);
>>
>>         }
>>
>>         @Override
>>         public void generate() throws IOException, SAXException,
>> ProcessingException {
>>                 super.generate();
>>         }
>>
>> }
>>
>>
>> Thank you
>
>
> If you have implemented the XMLFilter already, you can easily transform into
> a Cocoon transformer, the interface is very similar.
>
> Salu2.
>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [email protected]
>> For additional commands, e-mail: [email protected]
>>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to