Re: Jexl in embedded Pipeline
Piratenvisier <[email protected]> Thu, 13 Mar 2014 15:02:31 +0100
| Newsgroups | gmane.text.xml.cocoon.user |
|---|---|
| Message-ID | <[email protected]> |
An application like this I use already.
Thorsten Scherler made this email Application for me.
The important point: I want to send an email and the Email Text and the
attachements are produced by cocoon pipelines.
This a an important part of my cocoon 2.10 application which I wanted to
transfer to 3.0
Am 13.03.2014 14:23, schrieb gelo1234:
> I got lost with your explanation :) It's a kind of awkward thing to me
> that you are actually trying to do with that code.
>
>
> Why not making it clean:
>
> 1. First you need a String-Template match to serialize the Hibernate
> bean -> output XML with final values
>
> <map:match pattern="hibernate/bean">
> <map:generate src="bean.xml" type="stringtemplate" />
> <map:serialize type="xml" />
> </map:match>
> where bean.xml is your [input]
>
> You can now feed angebot bean data into hibernate/bean pipe above (to
> get it serialized):
> <map:match pattern="hibernate/{id}">
> <controller:call controller="rest-controller" select="BeanController">
> <map:parameter name="id" value="{map:id}" />
> </controller:call>
> </map:match>
>
>
> @RESTController
> public class BeanController implements Get {
>
> @SitemapParameter
> private String id;
>
> @RequestParameter
> private String name;
>
> // through injection or other way
>
> HibernateDAO dao;
>
> public RestResponse doGet() throws Exception {
> Map<String, Object> data= new HashMap<String, Object>();
> data.put("angebot", dao.getAngebotBean(id));
> data.put("name", this.name);
>
> return new Page("servlet:/hibernate/bean", data);
> }
> }
> At this point you got your Hibernate bean serialized (into XML data).
>
> 2. Second you can go for XSLT Transformer and transform XML into
> anything you want
>
> You don't need any JEXL here.
>
>
> Greetings,
> Greg
>
>
>
>
> 2014-03-13 13:30 GMT+01:00 Yahoo <[email protected]
> <mailto:[email protected]>>:
>
> I used the EmailPlainPipe from the distribution:
> byte[] bytes = (byte[]) parameters.get("input");
> XMLGenerator generator = new XMLGenerator(bytes);
> this.addComponent(generator);
> byte[] xsl = (byte[]) parameters.get("xsl");
> Source xslSource = new StreamSource(new
> ByteArrayInputStream(xsl));
> XSLTTransformer transformer = new XSLTTransformer(
> xslSource, new Date().getTime());
> // pass all parameter to the xslTransformer
> transformer.setParameters(parameters);
> this.addComponent(transformer);
> this.addComponent(TextSerializer.createPlainSerializer());
> super.setup(outputStream, parameters);
> where input is:
> <?xml version="1.0" encoding="UTF-8"?>
> <angebot>
> <id>$name$$angebot.id <http://angebot.id>$</id>
> <anganz>$angebot.anganz$</anganz>
> <angkurzbeschreibung>$angebot.angkurzbeschreibung$</angkurzbeschreibung>
> </angebot>
> xsl is the identity
> angebot is a Hibernate Bean.
> how do feed the pipeline with this Bean that it is used by Jexl to
> resolve the input String.
>
>
> Am 13.03.2014 12:55, schrieb gelo1234:
>> With servlet-sitemaps Jexl can be used within any pipeline as
>> {jexl:.....} value.
>>
>> Please show example of your embedded pipeline ?
>>
>> Greetings,
>> Greg
>>
>>
>> 2014-03-13 11:09 GMT+01:00 Yahoo <[email protected]
>> <mailto:[email protected]>>:
>>
>> How can I use Jexl in an embadded Pipline ?
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [email protected]
>> <mailto:[email protected]>
>> For additional commands, e-mail: [email protected]
>> <mailto:[email protected]>
>>
>>
>
>