Hi Jochen,

On Thu, Jun 16, 2016 at 1:18 AM, Jochen Traunecker <
[email protected]> 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.
>
+1 for "Fallback" concept, so that we can try the regular reader first and
if that fails, it should Fallback to raw data reader(without any data
loss).

>
> 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 <[email protected]> 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
>> [email protected]
>> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>>
>
> _______________________________________________
> Architecture mailing list
> [email protected]
> https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
>
>


-- 
Rajith Vitharana

Software Engineer,
WSO2 Inc. : wso2.com
Mobile : +94715883223
Blog : http://lankavitharana.blogspot.com/
_______________________________________________
Architecture mailing list
[email protected]
https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture

Reply via email to