Details
-
Improvement
-
Status: Resolved
-
Minor
-
Resolution: Fixed
-
2.14.1
-
None
-
Novice
Description
I have a producer which makes files (writes data to a temp file) and sets it as output message body. I was expecting Camel file component to just rename the resulting file. But instead it copies the file leaving the temporary file intact. Here's a snippet from the FileOperations class which raised my concern:
// we can optimize and use file based if no charset must be used, and the input body is a file File source = null; boolean fileBased = false; if (charset == null) { // if no charset, then we can try using file directly (optimized) Object body = exchange.getIn().getBody(); if (body instanceof WrappedFile) { body = ((WrappedFile<?>) body).getFile(); fileBased = true; } if (body instanceof File) { source = (File) body; } } if (fileBased) { // okay we know the body is a file based
So the fileBased is only assumed if we are using a proprietary WrappedFile body, whereas normal file is not considered a fileBased body. Am I missing something?
We could just treat files the same way as WrappedFile, or have an endpoint option to treat them as such, what do you think?