Splitting Message from Ftp Consumer

2014-12-05 Thread Noam Ramonet
Hi all,

I’m getting an strange behaviour splitting a message body coming from a ftp
consumer. Below route works perfectly when I use a local file consumer
(line commented). I get a log message per file input line, and I can
process the content later correctly.



But when I change to the ftp I get the file information data:


[fromFtp2SOAP] INFO - Line: -rw-r--r--1 513  51283 Dec
05 09:55 simpleTextData.txt



The log line with “ftp:${body}” present correctly the full text content of
the file.



I have tried with and without localWorkDirectory option, with same result.



Any clue? Thanks in advance.

 ftp://user:pass@host
/postalBox/inBox?fileName=simpleTextData.txt&localWorkDirectory=temp"/>
 
 
 



 
   


Rép: Splitting Message from Ftp Consumer

2014-12-05 Thread Francois Liot
Your issue is probably due to the fact you use "\n" as separator.

Use binary ftp option, to guaranty you will receive the very same encoded ascii 
stream as it could be hosted remote side, and test other fragrances of CRLF 
("\r\n", "\n"...).


Noam Ramonet  a écrit :

>Hi all,
>
>I’m getting an strange behaviour splitting a message body coming from a ftp
>consumer. Below route works perfectly when I use a local file consumer
>(line commented). I get a log message per file input line, and I can
>process the content later correctly.
>
>
>
>But when I change to the ftp I get the file information data:
>
>
>[fromFtp2SOAP] INFO - Line: -rw-r--r--1 513  51283 Dec
>05 09:55 simpleTextData.txt
>
>
>
>The log line with “ftp:${body}” present correctly the full text content of
>the file.
>
>
>
>I have tried with and without localWorkDirectory option, with same result.
>
>
>
>Any clue? Thanks in advance.
>
> ftp://user:pass@host
>/postalBox/inBox?fileName=simpleTextData.txt&localWorkDirectory=temp"/>
> 
> 
> 
>
>
>
> 
>   


Re: Rép: Splitting Message from Ftp Consumer

2014-12-05 Thread Noam Ramonet
Thanks Francois for your suggestions.

I forced binary and changed tokenize pattern to ";" (semicolon), but
problem remains:


 ftp://user:pass@host/
postalBox/inBox?fileName=simpleTextData.txt&localWorkDirectory=temp&binary=true"/>
 
 
 



 
   




2014-12-05 14:24 GMT+01:00 Francois Liot :

> Your issue is probably due to the fact you use "\n" as separator.
>
> Use binary ftp option, to guaranty you will receive the very same encoded
> ascii stream as it could be hosted remote side, and test other fragrances
> of CRLF ("\r\n", "\n"...).
>
>
> Noam Ramonet  a écrit :
>
> >Hi all,
> >
> >I’m getting an strange behaviour splitting a message body coming from a
> ftp
> >consumer. Below route works perfectly when I use a local file consumer
> >(line commented). I get a log message per file input line, and I can
> >process the content later correctly.
> >
> >
> >
> >But when I change to the ftp I get the file information data:
> >
> >
> >[fromFtp2SOAP] INFO - Line: -rw-r--r--1 513  51283 Dec
> >05 09:55 simpleTextData.txt
> >
> >
> >
> >The log line with “ftp:${body}” present correctly the full text content of
> >the file.
> >
> >
> >
> >I have tried with and without localWorkDirectory option, with same result.
> >
> >
> >
> >Any clue? Thanks in advance.
> >
> > ftp://user:pass@host
>
> >/postalBox/inBox?fileName=simpleTextData.txt&localWorkDirectory=temp"/>
> > 
> > 
> > 
> >
> >
> >
> > 
> >   
>


Re: Rép: Splitting Message from Ftp Consumer

2014-12-05 Thread François LIOT
Do a route that will simply grab the file and store it locally, check the 
difference between what you really get, and what you want to treat.



ftp://user:pass@host/
postalBox/inBox?fileName=simpleTextData.txt&localWorkDirectory=temp&binary=true"/>

initial.txt






after_text_conversion.txt



mailto:francois.l...@poplidays.com>
www.poplidays.com<http://www.poplidays.com/>

[1_logo]<http://www.poplidays.com/>?

From: Noam Ramonet 
Sent: Friday, December 5, 2014 3:15 PM
To: François LIOT
Cc: users@camel.apache.org
Subject: Re: Rép: Splitting Message from Ftp Consumer

Thanks Francois for your suggestions.

I forced binary and changed tokenize pattern to ";" (semicolon), but problem 
remains:


 ftp://user:pass@host/
postalBox/inBox?fileName=simpleTextData.txt&localWorkDirectory=temp&binary=true"/>
 
 
 



 
   




2014-12-05 14:24 GMT+01:00 Francois Liot 
mailto:francois.l...@poplidays.com>>:
Your issue is probably due to the fact you use "\n" as separator.

Use binary ftp option, to guaranty you will receive the very same encoded ascii 
stream as it could be hosted remote side, and test other fragrances of CRLF 
("\r\n", "\n"...).


Noam Ramonet mailto:noamramo...@gmail.com>> a écrit :

>Hi all,
>
>I'm getting an strange behaviour splitting a message body coming from a ftp
>consumer. Below route works perfectly when I use a local file consumer
>(line commented). I get a log message per file input line, and I can
>process the content later correctly.
>
>
>
>But when I change to the ftp I get the file information data:
>
>
>[fromFtp2SOAP] INFO - Line: -rw-r--r--1 513  51283 Dec
>05 09:55 simpleTextData.txt
>
>
>
>The log line with "ftp:${body}" present correctly the full text content of
>the file.
>
>
>
>I have tried with and without localWorkDirectory option, with same result.
>
>
>
>Any clue? Thanks in advance.
>
> ftp://user:pass@host
>/postalBox/inBox?fileName=simpleTextData.txt&localWorkDirectory=temp"/>
> 
> 
> 
>
>
>
> 
>   



Re: Rép: Splitting Message from Ftp Consumer

2014-12-10 Thread Noam Ramonet
Hi,

I’ve testing a little more and the issue seems related to the Expresion
used by split to iterate.

Ftp consumers generates a message with body input of type  RemoteFile<
FtpFile>. org.apache.commons.net.ftp.FtpFile#toString() method returns the
strange splitted content which originated the post “-rw-r--r--1
513  51283 Dec 05 09:55 simpleTextData.txt”.

RouteBuilder#body() Expresion generates this String as output. It can be
seen using  Java DSL. Next route presents the same log as the Spring
counterpart:

from("ftp://user:pass@host
/postalBox/inBox?fileName=simpleTextData.txt&localWorkDirectory=temp")
.split(body().tokenize("\n"))
.log("Line: ${body}")
.end();

Whereas below route works as I need:

from("ftp://user:pass@host
/postalBox/inBox?fileName=simpleTextData.txt&localWorkDirectory=temp")
.split(body(String.class).tokenize("\n"))
.log("Line: ${body}")
.end();

Is there any way to force the String type conversion in Spring DSL? I
already tried , pointed by
Francois, without success.

Is this an expected behaviour or a bug?

Meanwhile, a simple workaround for Spring DSL would be replacing the
tokenizer with a custom bean for splitting:






public class CustomTokenizer {
public List splitFtpFile(String remote){
return Arrays.asList(remote.split("\n"));
}
}


Re: Rép: Splitting Message from Ftp Consumer

2014-12-10 Thread noamRamonet
Correction. Inserting an explicit conversion to String solves the problem: 
 

ftp://user:pass@host/
postalBox/inBox?fileName=simpleTextData.txt&localWorkDirectory=temp&binary=true"/>


 
 
 






--
View this message in context: 
http://camel.465427.n5.nabble.com/Rep-Splitting-Message-from-Ftp-Consumer-tp5760220p5760489.html
Sent from the Camel - Users mailing list archive at Nabble.com.