You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@camel.apache.org by "Mitko Kolev (JIRA)" <ji...@apache.org> on 2010/04/23 11:01:26 UTC
[jira] Issue Comment Edited: (CAMEL-2549) Camel Exec component
[ https://issues.apache.org/activemq/browse/CAMEL-2549?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=59051#action_59051 ]
Mitko Kolev edited comment on CAMEL-2549 at 4/23/10 4:59 AM:
-------------------------------------------------------------
Hi everyone,
{quote}
Each route should then IMHO be able to get the exec result without being aware of the stream where it is located (err or out).
{quote}
If you have both {{stdout}} and {{stderr}} filled, it is hard to chose what would be a result, because this can be use-case specific. That's why I think it is important to have the body filled with the stdout (but not the stderr) by default. However it would make sense to write {{sdtderr}} in the out-body *only* when the {{stdout}} is {{null}}, for convenience. This must cover your case.
About the stream conversion, I think it would be better to reset the streams, only if they are of type {{ByteArrayInputStream}}, which is by default. This will be OK with the default implementation of the default {{ExecCommandExecutor}}, and will not break other different input stream sources, however the component will behave differently on different input stream sources with not - resetable streams. I find the behavior acceptabe.
What do you think for both?
* Returning {{stderr}}, only when {{stdout}} is {{null}}
* Resetting the streams only if they are {{ByteArrayInputStream}}
BTW, i also tried different scenarios using stream caching, and it did not do what i expected. I'll investigate the issue further.
was (Author: mkolev):
Hi everyone,
{quote}
Each route should then IMHO be able to get the exec result without being aware of the stream where it is located (err or out).
{quote}
If you have both {{stdout}} and {{stderr}} filled, it is hard to chose what would be a result, because this can be use-case specific. That's why I think it is important to have the body filled with the stdout (but not the stderr) by default. However it would make sense to write {{sdtderr}} in the out-body *only* when the {{stdout}} is {{null}}, for convenience. This must cover your case.
About the stream conversion, I think it would be better to reset the streams, only if they are of type {{ByteArrayInputStream}}, which is by default. This will be OK with the default implementation of {{ExecResult}}, and will not break other different input stream sources, however the component will behave differently on different input stream sources with not - resetable streams. I find the behavior acceptabe.
What do you think for both?
* Returning {{stderr}}, only when {{stdout}} is {{null}}
* Resetting the streams only if they are {{ByteArrayInputStream}}
BTW, i also tried different scenarios using a stream converter, and it did not do what i expected. I'll investigate the issue further.
> Camel Exec component
> --------------------
>
> Key: CAMEL-2549
> URL: https://issues.apache.org/activemq/browse/CAMEL-2549
> Project: Apache Camel
> Issue Type: New Feature
> Affects Versions: 2.3.0
> Environment: Tested on Windows XP and Linux
> Reporter: Mitko Kolev
> Assignee: Martin Krasser
> Fix For: 2.3.0
>
> Attachments: camel-exec-3.diff, camel-exec-component-feedback.zip, camel-exec-patch.diff, camel-exec-patch2.diff, exec-wiki.txt
>
>
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.