[ 
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.

Reply via email to