You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Sergey Zolotaryov (JIRA)" <ji...@apache.org> on 2015/04/01 15:06:53 UTC
[jira] [Created] (CAMEL-8586) File component optimization required
for file response body
Sergey Zolotaryov created CAMEL-8586:
----------------------------------------
Summary: File component optimization required for file response body
Key: CAMEL-8586
URL: https://issues.apache.org/jira/browse/CAMEL-8586
Project: Camel
Issue Type: Improvement
Components: camel-core
Affects Versions: 2.14.1
Reporter: Sergey Zolotaryov
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:
{code}
// 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
{code}
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?
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)