Ok, I forgot about implicit type conversion. I can see that if
RemoteFile gets routed to,
for example, a bean method with signature public void
processFile(InputStream input),
that Camel will convert RemoteFile to BufferedInputStream. I also was
able to get
a valid java.io.File instance by calling .convertBodyTo(File.class);
Ok, I'm good to go...
Thanks,
Chris
On Fri, Apr 12, 2013 at 12:25 PM, Chris Wolf cwolf.a...@gmail.com wrote:
I read the documentation:
http://camel.apache.org/ftp.html
and want to FTP large files, as such, I don't want the entire file
loaded into memory - I thought the localWorkDirectory option would
allow this. That web page says,
It will download the remote file directly to a local file stream. The
java.io.File handle is then used as the Exchange body.
Well, that's not what I'm seeing - what I see is that the body is of type
, BodyType:org.apache.camel.component.file.remote.RemoteFile
, Body:[Body is file based: RemoteFile[giant_dataset.csv]]
...but I expected it to be of type java.io.File, like the local
file:// component and like the ftp documentation says.
When stepping through the code, I see that the file *is* being
downloaded to the work dir.
If I look at the various fields of RemoteFile in the debugger, I don't
see anything indicating a file path which includes the local work
directory.
So how, exactly, does the localWorkDirectory mechanism work and is it
true that it won't load the whole file into memory? Why isn't the
exchange body of type java.io.File or java.io.InputStream? - I'm
confused - please help...
-Chris