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