You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ws.apache.org by Jasintha Dasanayaka <ja...@gmail.com> on 2011/10/25 06:48:54 UTC

Read larger text content using axiom

 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/>,|*http://wso2.com
*lean . enterprise . middleware*

mobile +94 772 916 596 ,

Re: Read larger text content using axiom

Posted by Jasintha Dasanayaka <ja...@gmail.com>.
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
<an...@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 <ja...@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
> >> > <an...@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
> >> >> <ja...@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 ,

Re: Read larger text content using axiom

Posted by Andreas Veithen <an...@gmail.com>.
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 <ja...@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 <an...@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 <ja...@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
>> > <an...@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
>> >> <ja...@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


Re: Read larger text content using axiom

Posted by Jasintha Dasanayaka <ja...@gmail.com>.
 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
<an...@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 <ja...@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
> > <an...@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/>,|*http://wso2.com
*lean . enterprise . middleware*

mobile +94 772 916 596 ,

Re: Read larger text content using axiom

Posted by Andreas Veithen <an...@gmail.com>.
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 <ja...@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
> <an...@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 <ja...@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


Re: Read larger text content using axiom

Posted by Jasintha Dasanayaka <ja...@gmail.com>.
 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 <ja...@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/>,|*http://wso2.com
*lean . enterprise . middleware*

mobile +94 772 916 596 ,

Re: Read larger text content using axiom

Posted by Andreas Veithen <an...@gmail.com>.
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 <ja...@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