ws-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jasintha Dasanayaka <jasint...@gmail.com>
Subject Re: Read larger text content using axiom
Date Wed, 02 Nov 2011 12:52:43 GMT
Hi Andreas

 I got the point and I have submitted the new patch for synapse . Also I
have tested the Smooks with getTextAsStream,  it was successful .Thanks a
lot for your detail explanation

Thanks
/Jasintha

On Mon, Oct 31, 2011 at 4:59 PM, Andreas Veithen
<andreas.veithen@gmail.com>wrote:

> SYNAPSE-809 is about a bug in getTextPayload. Since that method is
> designed to load the content of an element into a String object, the
> correct solution is to use OMElement#getText() because it does exactly
> that.
>
> However, loading a CSV file into a String before passing it to Smooks
> is not a smart solution because Smooks is able read from a stream.
> Therefore, getTextAsStream is a better solution, assuming that it is
> used _instead of_ getTextPayload (and not inside getTextPayload).
>
> Andreas
>
> On Mon, Oct 31, 2011 at 06:29, Jasintha Dasanayaka <jasinthad@gmail.com>
> wrote:
> >  Hi Andreas
> >
> >  Here you mention that better solution is to use
> > ElementHelper#getTextAsStream method but I saw in the synapse
> > jira(SYNAPSE-809) you  had made a comment on that
> > "ElementHelper#getTextAsStream is useless here." I am little bit
> confusing
> > about this could you please explain this
> >
> > /Jasintha
> >
> > On Thu, Oct 27, 2011 at 2:17 AM, Andreas Veithen <
> andreas.veithen@gmail.com>
> > wrote:
> >>
> >> Jasintha,
> >>
> >> That method assumes that the object model was produced by a coalescing
> >> parser, which is not the case here. It should use OMElement#getText()
> >> instead of OMText#getText(). However, that defeats the purpose of the
> >> PlainTextBuilder/WrappedTextNodeOMDataSourceFromReader stuff because
> >> it would read the entire CSV file into memory (Given the method
> >> signature of PayloadHelper#getTextPayload, it has no other choice).
> >> The better solution is to use ElementHelper#getTextAsStream from the
> >> Axiom API because that method enables streaming.
> >>
> >> Andreas
> >>
> >> On Wed, Oct 26, 2011 at 06:55, Jasintha Dasanayaka <jasinthad@gmail.com
> >
> >> wrote:
> >> >  Hi Andreas
> >> >
> >> > We are using smooks meditor in ESB to convert csv file to xml  but we
> >> > couldn't convert the whole file into xml it's only convert 4KB size of
> >> > data
> >> > .We identified that other part of the massage has lost  within the
> >> > synapse
> >> > class called "PayloadHelper.java" method name is
> >> > "getTextPayload(SOAPEnvelope envelope)" that method uses above way to
> >> > get
> >> > axiom child
> >> >
> >> > you can find this code in synapse trunk   class "PayloadHelper.java"
> >> > line
> >> > number 199
> >> >
> >> > Thanks & Regards
> >> > /Jasintha
> >> >
> >> > On Tue, Oct 25, 2011 at 11:58 PM, Andreas Veithen
> >> > <andreas.veithen@gmail.com> wrote:
> >> >>
> >> >> Jasintha,
> >> >>
> >> >> The sample code doesn't really show what you are trying to achieve.
> >> >> Obviously you wouldn't use Axiom to read the content of a file into
a
> >> >> String, so what is the actual use case?
> >> >>
> >> >> Andreas
> >> >>
> >> >> On Tue, Oct 25, 2011 at 06:48, Jasintha Dasanayaka
> >> >> <jasinthad@gmail.com>
> >> >> wrote:
> >> >> >  Hi Andreas
> >> >> >
> >> >> >  According to you Answer in issue[1] I have modified the method
as
> >> >> > follows
> >> >> > is this the correct way to do this If not could you please suggest
> a
> >> >> > correct
> >> >> > way
> >> >> >
> >> >> >
> >> >> >
> >> >> > private static String readFile(String file) throws IOException,
> >> >> > XMLStreamException {
> >> >> >
> >> >> >         FileInputStream fin = new FileInputStream(file);
> >> >> >         OMFactory factory = OMAbstractFactory.getOMFactory();
> >> >> >         String charSetEnc =
> >> >> > BuilderUtil.getCharSetEncoding("text/plain");
> >> >> >         QName wrapperQName = BaseConstants.DEFAULT_TEXT_WRAPPER;
> >> >> >         Reader reader;
> >> >> >         try {
> >> >> >             reader = new InputStreamReader(fin, charSetEnc);
> >> >> >         } catch (UnsupportedEncodingException ex) {
> >> >> >             throw new AxisFault("Unsupported encoding: " +
> >> >> > charSetEnc,
> >> >> > ex);
> >> >> >         }
> >> >> >         OMElement om =  new OMSourcedElementImpl(wrapperQName,
> >> >> > factory,
> >> >> >                 new
> >> >> > WrappedTextNodeOMDataSourceFromReader(wrapperQName,
> >> >> > reader));
> >> >> >         om.serialize(System.out);
> >> >> >
> >> >> >        /*  before modify
> >> >> >        OMNode textNode = om.getFirstOMChild();
> >> >> >         OMText text = (OMText) textNode;
> >> >> >         return text.getText();
> >> >> >       */
> >> >> >
> >> >> >         StringBuffer buffer = new StringBuffer();
> >> >> >         Iterator<OMNode> iterator = om.getChildren();
> >> >> >         while(iterator.hasNext()){
> >> >> >             OMText text = (OMText) iterator.next();
> >> >> >             buffer.append(text.getText());
> >> >> >         }
> >> >> >
> >> >> >         return buffer.toString();
> >> >> >
> >> >> >     }
> >> >> >
> >> >> >
> >> >> >  Thanks & Regards
> >> >> >  /Jasintha
> >> >> >
> >> >> > [1]-https://issues.apache.org/jira/browse/AXIOM-395
> >> >> >
> >> >> > --
> >> >> > Thanks & Regards
> >> >> >
> >> >> > Jasintha Dasanayake
> >> >> > Software Engineer.
> >> >> >
> >> >> > WSO2 Inc,|http://wso2.com
> >> >> > lean . enterprise . middleware
> >> >> >
> >> >> > mobile +94 772 916 596 ,
> >> >> >
> >> >> >
> >> >> >
> >> >>
> >> >> ---------------------------------------------------------------------
> >> >> To unsubscribe, e-mail: dev-unsubscribe@ws.apache.org
> >> >> For additional commands, e-mail: dev-help@ws.apache.org
> >> >>
> >> >
> >> >
> >> >
> >> > --
> >> > Thanks & Regards
> >> >
> >> > Jasintha Dasanayake
> >> > Software Engineer.
> >> >
> >> > WSO2 Inc,|http://wso2.com
> >> > lean . enterprise . middleware
> >> >
> >> > mobile +94 772 916 596 ,
> >> >
> >> >
> >> >
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: dev-unsubscribe@ws.apache.org
> >> For additional commands, e-mail: dev-help@ws.apache.org
> >>
> >
> >
> >
> > --
> > Thanks & Regards
> >
> > Jasintha Dasanayake
> > Software Engineer.
> >
> > WSO2 Inc,|http://wso2.com
> > lean . enterprise . middleware
> >
> > mobile +94 772 916 596 ,
> >
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@ws.apache.org
> For additional commands, e-mail: dev-help@ws.apache.org
>
>


-- 
*Thanks & Regards

Jasintha Dasanayake
Software Engineer.

WSO2 Inc <http://wso2.com/>,|*http://wso2.com
*lean . enterprise . middleware*

mobile +94 772 916 596 ,

Mime
View raw message