Hi Isuru, So the XML processing library will be Axiom right. +1 for axiom since its very comprehensive when it comes to soap processing.
Regards NAndika On Fri, Jun 17, 2016 at 9:55 AM, Isuru Ranawaka <isu...@wso2.com> wrote: > Hi Jochen, > > Your suggestion is very interesting and thanks for providing a valuable > idea. Actually we are in the process of designing error handling in CGW > and need to think about error handling strategies like, Per exception > based error handling, Mediation level error handling , Pipeline level error > handling , Global level error handling etc .. and how to fit them with > Next GEN ESB Language and runtime. > > Thanks > Isuru > > On Thu, Jun 16, 2016 at 1:18 AM, Jochen Traunecker < > jochen.traunec...@googlemail.com> wrote: > >> Hi Isuru, >> >> have you considered some kind of robust "Fallback-Reader" capable of >> reading whatever comes in as binary raw data? It might be very handy in >> error handling like illegal characters in XML payloads, wrong encoding of >> payloads, malformed payloads and so on. >> >> A typical scenario is like this: a illegal payload ends up in some >> fault-handler ( e.g. XML parser throws an exception). Fault-Handling should >> be able to process the illegal payload like encoding it as Base64 compliant >> text and write it to the log-file and so on. By that Fault-Handling should >> be able to access the payload as binary data stream through >> "Fallback-Reader". Ideally "Fallback-Reader" provides convenience >> functionality like base64 encoding, compressing, ... >> >> Regards, >> Jochen >> -- >> Jochen Traunecker >> https://www.linkedin.com/in/jochen-traunecker >> >> >> >> >> Isuru Ranawaka <isu...@wso2.com> schrieb am Di., 14. Juni 2016 um >> 19:27 Uhr: >> >>> Hi all, >>> >>> >>> We have identified three scenarios when considering content aware >>> support in Next Gen ESB . These can be categorized as a pure pass thru >>> scenario where payload is not touched , reading the content without >>> modifying scenario and reading and modifying the content. So we came up of >>> initial design and implementation of the content reading part. We have >>> come up with different message readers for different content types . For >>> example, for the XML message XMLReader is used and for the JSON Messages >>> JSONReader is used. Message readers are pluggable via OSGI service. >>> >>> [image: reader_implementation.png] >>> >>> >>> Reader Registration >>> >>> - >>> >>> Gateway core consists of in memory registry which keeps registered >>> MessageReaders according to content type. >>> - >>> >>> Message readers are registered via OSGI services. >>> - >>> >>> JSON message reader and XML message reader are implemented as two >>> different OSGI bundles. >>> - >>> >>> CarbonMessage is supported with reading content as InputStream and >>> write content via OutputStream. >>> >>> >>> Message Flow >>> >>> - >>> >>> Need to specify the portion of the message that needs to be read >>> via XPath or JSONPath according to the content type. >>> - >>> >>> When message hits the content aware mediator it checks weather >>> message is already read if so then it takes MessageDataSource which is >>> data >>> holder for already read message inputstream according contentType.Else it >>> gets the matching reader from reader registry and read the input stream >>> and >>> load the inputstream into MessageDataSource. >>> - >>> >>> XPath and JSONPath are evaluated using MessageDataSource >>> - >>> >>> Serialize data from MessageDataSource to CarbonMessage before >>> sending to the transport level after mediation. >>> >>> >>> >>> XML Reading >>> >>> - >>> >>> Axiom is used for represent XML messages as OMElements >>> - >>> >>> Axiom uses StAX API for read and write XML messages which is >>> inherently supports deferred building concept. >>> - >>> >>> AxiomXpath is used for evaluate XPath and it used Jaxen as >>> underlying XPath library. >>> - >>> >>> XPath libraries are pluggable. >>> >>> >>> >>> JSON Reading >>> >>> - >>> >>> Jayway library is used for represent JSONPath. >>> - >>> >>> Underlying JSON library is Jackson. >>> - >>> >>> Jackson has JSONParser and JSONGenerator which are similar to >>> StreamingXMLReader and Writer in StAX API and can read, write events in >>> streaming manner. >>> - Jackson supports data binding as well. >>> >>> >>> Thanks >>> -- >>> Best Regards >>> Isuru Ranawaka >>> M: +94714629880 >>> Blog : http://isurur.blogspot.com/ >>> _______________________________________________ >>> Architecture mailing list >>> Architecture@wso2.org >>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture >>> >> >> _______________________________________________ >> Architecture mailing list >> Architecture@wso2.org >> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture >> >> > > > -- > Best Regards > Isuru Ranawaka > M: +94714629880 > Blog : http://isurur.blogspot.com/ > > _______________________________________________ > Architecture mailing list > Architecture@wso2.org > https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture > > -- Nandika Jayawardana WSO2 Inc ; http://wso2.com lean.enterprise.middleware
_______________________________________________ Architecture mailing list Architecture@wso2.org https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture