On Fri, Dec 31, 2010 at 9:58 PM, Supun Kamburugamuva <[email protected]> wrote:
> +1 for adding multiple XML node support for Enrich mediator. > The concept of Source and Target also there in the callout mediator as well. I think the meaning of both are same and it is better to unified all source and target UI appear every where. thanks, Amila. > > Thanks, > Supun.. > > On Fri, Dec 31, 2010 at 4:57 PM, Kasun Indrasiri <[email protected]> wrote: > > Yeah, Enrich mediator doesn't support multiple element. For your > > requirement, we can use the following config, > > <proxy name="PseudoProxy" transports="https http" startOnLoad="true" > > trace="disable"> > > <target> > > <inSequence> > > <log level="full"/> > > <enrich> > > <source xmlns:ns2="http://brs.carbon.wso2.org" > > > > xpath="//ns2:CustomerOrderProcessRequest/ns2:Customer/ns2:Order"/> > > <target type="property" property="ORDERS_REQ"/> > > </enrich> > > <log level="custom"> > > <property name="BRS_REQ" > > expression="get-property('ORDERS_REQ')"/> > > </log> > > <enrich> > > <source type="inline"> > > <ns2:CalculatePriceRequest > > xmlns:ns2="http://brs.carbon.wso2.org"> > > <ns2:foo/> > > </ns2:CalculatePriceRequest> > > </source> > > <target type="body"/> > > </enrich> > > <enrich> > > <source type="property" property="ORDERS_REQ"/> > > <target xmlns:ns2="http://brs.carbon.wso2.org" > > xpath="//ns2:CalculatePriceRequest/ns2:foo"/> > > </enrich> > > <log level="full"/> > > </inSequence> > > <outSequence> > > <log/> > > </outSequence> > > </target> > > </proxy> > > But this only copies the first order element only. So, IMO we need to add > > this capability to enrich mediator. > > resulting message: > > [2010-12-31 16:37:33,760] INFO - LogMediator To: /services/PseudoProxy, > > WSAction: urn:get_geo_app_profile, SOAPAction: urn:get_geo_app_profile, > > MessageID: urn:uuid:B0419F9F6B84FC49B01293793682385, Direction: request, > > Envelope: <?xml version='1.0' encoding='utf-8'?><soapenv:Envelope > > xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body> > > <ns2:CalculatePriceRequest xmlns:ns2="http://brs.carbon.wso2.org"> > > <ns2:Order> > > <items xmlns="http://pojo.sample.brs/xsd"> > > <price>50.0</price> > > <type>TypeA</type> > > </items> > > <items xmlns="http://pojo.sample.brs/xsd"> > > <price>60.0</price> > > <type>TypeB</type> > > </items> > > <ns1:orderID > > xmlns:ns1="http://pojo.sample.brs/xsd">Order1</ns1:orderID> > > </ns2:Order> > > </ns2:CalculatePriceRequest> > > </soapenv:Body></soapenv:Envelope> > > > > On Fri, Dec 31, 2010 at 10:08 AM, Hiranya Jayathilaka <[email protected]> > > wrote: > >> > >> > >> On Fri, Dec 31, 2010 at 6:58 AM, Amila Suriarachchi <[email protected]> > >> wrote: > >>> > >>> > >>> On Thu, Dec 30, 2010 at 9:38 PM, Hiranya Jayathilaka <[email protected] > > > >>> wrote: > >>>> > >>>> > >>>> On Thu, Dec 30, 2010 at 8:46 PM, Amila Suriarachchi <[email protected]> > >>>> wrote: > >>>>> > >>>>> > >>>>> On Thu, Dec 30, 2010 at 7:02 PM, Supun Kamburugamuva <[email protected] > > > >>>>> wrote: > >>>>>> > >>>>>> You can use a XSLT as well. > >>>>> > >>>>> Is this means I can't use Enrich mediator? > >>>> > >>>> Enrich mediator is generally used to swap XML fragments in and out of > >>>> messages. > >>> > >>> you can do a transformation by doing such steps. Let me as this > question > >>> this way. > >>> > >>> Lets say I get an xml like this > >>> > >>> <ns2: > >>> CustomerOrderProcessRequest xmlns:ns2="http://brs.carbon.wso2.org"> > >>> <ns2:Customer> > >>> <ns2:name>Amila</ns2:name> > >>> <ns2:rating>0.5</ns2:rating> > >>> <ns2:maxAmount>50</ns2:maxAmount> > >>> <ns2:Order> > >>> <items xmlns="http://pojo.sample.brs/xsd"> > >>> <price>50.0</price> > >>> <type>TypeA</type> > >>> </items> > >>> <items xmlns="http://pojo.sample.brs/xsd"> > >>> <price>60.0</price> > >>> <type>TypeB</type> > >>> </items> > >>> <ns1:orderID > >>> xmlns:ns1="http://pojo.sample.brs/xsd">Order1</ns1:orderID> > >>> </ns2:Order> > >>> <ns2:Order> > >>> <items xmlns="http://pojo.sample.brs/xsd"> > >>> <price>50.0</price> > >>> <type>TypeA</type> > >>> </items> > >>> <items xmlns="http://pojo.sample.brs/xsd"> > >>> <price>60.0</price> > >>> <type>TypeA</type> > >>> </items> > >>> <ns1:orderID > >>> xmlns:ns1="http://pojo.sample.brs/xsd">Order2</ns1:orderID> > >>> </ns2:Order> > >>> </ns2:Customer> > >>> </ns2:CustomerOrderProcessRequest> > >>> > >>> And I have an xml property (say myProperty) which contains following > xml > >>> > >>> <ns2:CalculatePriceRequest xmlns:ns2="http://brs.carbon.wso2.org"/> > >>> > >>> Can I copy the Order elements to above element using enrich mediator? > >> > >> You have multiple Order elements in the input XML. So I don't think we > >> can. At least it's not going to be trivial. > >> Thanks, > >> Hiranya > >> > >>>> > >>>> Not sure how easy or suitable to implement a transformation using > that. > >>> > >>> yes we can use transformations but there are not performance wise > >>> effective isn't it? > >>> > >>> As I understood this is what enrich mediator does. Please correct me if > I > >>> wrong. > >>> > >>> there is a source xml element which can be soap-header, soap-body, a > >>> property or an inline. > >>> > >>> Then we can specify a part of that xml (say sourceXML) using an XPath. > >>> > >>> There is a target xml element again can be soap-header, soap-body or > >>> property > >>> > >>> then we can either replace, add as a child or sibling the sourceXML to > a > >>> given part of the target XML (again given as xml) > >>> > >>> if so we should be able to many transformations using set of enrich > >>> mediators in a performance effective way. > >>> > >>> thanks, > >>> Amila. > >>> > >>> > >>>> > >>>> Thanks, > >>>> Hiranya > >>>> > >>>>> > >>>>> thanks, > >>>>> Amila. > >>>>>> > >>>>>> Thanks, > >>>>>> Supun.. > >>>>>> > >>>>>> On Thu, Dec 30, 2010 at 6:29 PM, Paul Fremantle <[email protected]> > wrote: > >>>>>> > Do you need performance? > >>>>>> > I love using E4X/JS mediator for this sort of thing! > >>>>>> > > >>>>>> > Paul > >>>>>> > > >>>>>> > On 30 December 2010 11:40, Amila Suriarachchi <[email protected]> > >>>>>> > wrote: > >>>>>> >> > >>>>>> >> hi, > >>>>>> >> > >>>>>> >> I try to write a sample which uses rules and ESB to process a > >>>>>> >> customer > >>>>>> >> order. > >>>>>> >> > >>>>>> >> For that I have this requirement. > >>>>>> >> > >>>>>> >> The esb proxy service receives a message like this, > >>>>>> >> > >>>>>> >> <ns2:CustomerOrderProcessRequest > >>>>>> >> xmlns:ns2="http://brs.carbon.wso2.org"> > >>>>>> >> <ns2:Customer> > >>>>>> >> <ns2:name>Amila</ns2:name> > >>>>>> >> <ns2:rating>0.5</ns2:rating> > >>>>>> >> <ns2:maxAmount>50</ns2:maxAmount> > >>>>>> >> <ns2:Order> > >>>>>> >> <items xmlns="http://pojo.sample.brs/xsd"> > >>>>>> >> <price>50.0</price> > >>>>>> >> <type>TypeA</type> > >>>>>> >> </items> > >>>>>> >> <items xmlns="http://pojo.sample.brs/xsd"> > >>>>>> >> <price>60.0</price> > >>>>>> >> <type>TypeB</type> > >>>>>> >> </items> > >>>>>> >> <ns1:orderID > >>>>>> >> xmlns:ns1="http://pojo.sample.brs/xsd">Order1</ns1:orderID> > >>>>>> >> </ns2:Order> > >>>>>> >> <ns2:Order> > >>>>>> >> <items xmlns="http://pojo.sample.brs/xsd"> > >>>>>> >> <price>50.0</price> > >>>>>> >> <type>TypeA</type> > >>>>>> >> </items> > >>>>>> >> <items xmlns="http://pojo.sample.brs/xsd"> > >>>>>> >> <price>60.0</price> > >>>>>> >> <type>TypeA</type> > >>>>>> >> </items> > >>>>>> >> <ns1:orderID > >>>>>> >> xmlns:ns1="http://pojo.sample.brs/xsd">Order2</ns1:orderID> > >>>>>> >> </ns2:Order> > >>>>>> >> </ns2:Customer> > >>>>>> >> </ns2:CustomerOrderProcessRequest> > >>>>>> >> > >>>>>> >> Then ESB has to send the following message to rule service. > >>>>>> >> > >>>>>> >> <ns2:CalculatePriceRequest xmlns:ns2="http://brs.carbon.wso2.org > "> > >>>>>> >> <ns2:Order> > >>>>>> >> <items xmlns="http://pojo.sample.brs/xsd"> > >>>>>> >> <price>50.0</price> > >>>>>> >> <type>TypeA</type> > >>>>>> >> </items> > >>>>>> >> <items xmlns="http://pojo.sample.brs/xsd"> > >>>>>> >> <price>60.0</price> > >>>>>> >> <type>TypeB</type> > >>>>>> >> </items> > >>>>>> >> <ns1:orderID > >>>>>> >> xmlns:ns1="http://pojo.sample.brs/xsd">Order1</ns1:orderID> > >>>>>> >> </ns2:Order> > >>>>>> >> <ns2:Order> > >>>>>> >> <items xmlns="http://pojo.sample.brs/xsd"> > >>>>>> >> <price>50.0</price> > >>>>>> >> <type>TypeA</type> > >>>>>> >> </items> > >>>>>> >> <items xmlns="http://pojo.sample.brs/xsd"> > >>>>>> >> <price>60.0</price> > >>>>>> >> <type>TypeA</type> > >>>>>> >> </items> > >>>>>> >> <ns1:orderID > >>>>>> >> xmlns:ns1="http://pojo.sample.brs/xsd">Order2</ns1:orderID> > >>>>>> >> </ns2:Order> > >>>>>> >> </ns2:CalculatePriceRequest> > >>>>>> >> > >>>>>> >> Currently I have the following ESB configuration which passes the > >>>>>> >> received > >>>>>> >> message as it is. > >>>>>> >> > >>>>>> >> <proxy name="CustomerOrderService" transports="https http" > >>>>>> >> startOnLoad="true" trace="disable"> > >>>>>> >> <target inSequence="CustomerOrderInSequence" > >>>>>> >> outSequence="CustomerOrderOutSequence"/> > >>>>>> >> </proxy> > >>>>>> >> <sequence name="CustomerOrderInSequence"> > >>>>>> >> <send> > >>>>>> >> <endpoint > >>>>>> >> > >>>>>> >> > name="endpoint_urn_uuid_EA2F12A5E60B83D785297590854239961202342050"> > >>>>>> >> <address > >>>>>> >> uri="http://111.223.141.139:9762/services/PriceCalculatorService > "/> > >>>>>> >> </endpoint> > >>>>>> >> </send> > >>>>>> >> </sequence> > >>>>>> >> <sequence name="CustomerOrderOutSequence"> > >>>>>> >> <send/> > >>>>>> >> </sequence> > >>>>>> >> > >>>>>> >> I need to get the orders from the received request and create the > >>>>>> >> out put > >>>>>> >> message. > >>>>>> >> One options is to use the XSLT transformations instead of can I > use > >>>>>> >> the > >>>>>> >> enrich mediator? > >>>>>> >> > >>>>>> >> If I use enrich mediator what are the steps? > >>>>>> >> > >>>>>> >> I tried to do following steps. But seems to be not working. > >>>>>> >> > >>>>>> >> 1. create a property with empty > >>>>>> >> <ns2:CalculatePriceRequest xmlns:ns2="http://brs.carbon.wso2.org > "> > >>>>>> >> > >>>>>> >> 2. Then copy the orders from the soap body to the element > property. > >>>>>> >> 3. Replace this property om element with the soap body. > >>>>>> >> > >>>>>> >> thanks, > >>>>>> >> Amila. > >>>>>> >> > >>>>>> >> _______________________________________________ > >>>>>> >> Carbon-dev mailing list > >>>>>> >> [email protected] > >>>>>> >> https://wso2.org/cgi-bin/mailman/listinfo/carbon-dev > >>>>>> >> > >>>>>> > > >>>>>> > > >>>>>> > > >>>>>> > -- > >>>>>> > Paul Fremantle > >>>>>> > CTO and Co-Founder, WSO2 > >>>>>> > OASIS WS-RX TC Co-chair, VP, Apache Synapse > >>>>>> > > >>>>>> > Office: +44 844 484 8143 > >>>>>> > Cell: +44 798 447 4618 > >>>>>> > > >>>>>> > blog: http://pzf.fremantle.org > >>>>>> > twitter.com/pzfreo > >>>>>> > [email protected] > >>>>>> > > >>>>>> > wso2.com Lean Enterprise Middleware > >>>>>> > > >>>>>> > Disclaimer: This communication may contain privileged or other > >>>>>> > confidential > >>>>>> > information and is intended exclusively for the addressee/s. If > you > >>>>>> > are not > >>>>>> > the intended recipient/s, or believe that you may have received > this > >>>>>> > communication in error, please reply to the sender indicating that > >>>>>> > fact and > >>>>>> > delete the copy you received and in addition, you should not > print, > >>>>>> > copy, > >>>>>> > retransmit, disseminate, or otherwise use the information > contained > >>>>>> > in this > >>>>>> > communication. Internet communications cannot be guaranteed to be > >>>>>> > timely, > >>>>>> > secure, error or virus-free. The sender does not accept liability > >>>>>> > for any > >>>>>> > errors or omissions. > >>>>>> > > >>>>>> > _______________________________________________ > >>>>>> > Carbon-dev mailing list > >>>>>> > [email protected] > >>>>>> > https://wso2.org/cgi-bin/mailman/listinfo/carbon-dev > >>>>>> > > >>>>>> > > >>>>>> > >>>>>> > >>>>>> > >>>>>> -- > >>>>>> Supun Kamburugamuva > >>>>>> Technical Lead > >>>>>> WSO2 Inc.; http://wso2.org > >>>>>> E-mail: [email protected]; Mobile: +94 77 431 3585 > >>>>>> Blog: http://supunk.blogspot.com > >>>>>> _______________________________________________ > >>>>>> Carbon-dev mailing list > >>>>>> [email protected] > >>>>>> https://wso2.org/cgi-bin/mailman/listinfo/carbon-dev > >>>>> > >>>>> > >>>>> _______________________________________________ > >>>>> Carbon-dev mailing list > >>>>> [email protected] > >>>>> https://wso2.org/cgi-bin/mailman/listinfo/carbon-dev > >>>>> > >>>> > >>>> > >>>> > >>>> -- > >>>> Hiranya Jayathilaka > >>>> Senior Software Engineer; > >>>> WSO2 Inc.; http://wso2.org > >>>> E-mail: [email protected]; Mobile: +94 77 633 3491 > >>>> Blog: http://techfeast-hiranya.blogspot.com > >>>> > >>>> _______________________________________________ > >>>> Carbon-dev mailing list > >>>> [email protected] > >>>> https://wso2.org/cgi-bin/mailman/listinfo/carbon-dev > >>>> > >>> > >>> > >>> _______________________________________________ > >>> Carbon-dev mailing list > >>> [email protected] > >>> https://wso2.org/cgi-bin/mailman/listinfo/carbon-dev > >>> > >> > >> > >> > >> -- > >> Hiranya Jayathilaka > >> Senior Software Engineer; > >> WSO2 Inc.; http://wso2.org > >> E-mail: [email protected]; Mobile: +94 77 633 3491 > >> Blog: http://techfeast-hiranya.blogspot.com > >> > >> _______________________________________________ > >> Carbon-dev mailing list > >> [email protected] > >> https://wso2.org/cgi-bin/mailman/listinfo/carbon-dev > >> > > > > > > > > -- > > Kasun Indrasiri > > Senior Software Engineer > > WSO2, Inc.; http://wso2.com > > lean.enterprise.middleware > > > > cell: +94 71 536 4128 > > Blog : http://kasunpanorama.blogspot.com/ > > > > _______________________________________________ > > Carbon-dev mailing list > > [email protected] > > https://wso2.org/cgi-bin/mailman/listinfo/carbon-dev > > > > > > > > -- > Supun Kamburugamuva > Technical Lead > WSO2 Inc.; http://wso2.org > E-mail: [email protected]; Mobile: +94 77 431 3585 > Blog: http://supunk.blogspot.com > _______________________________________________ > Carbon-dev mailing list > [email protected] > https://wso2.org/cgi-bin/mailman/listinfo/carbon-dev >
_______________________________________________ Carbon-dev mailing list [email protected] https://wso2.org/cgi-bin/mailman/listinfo/carbon-dev
