commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Henryk Konsek (JIRA)" <j...@apache.org>
Subject [jira] Updated: (EXEC-50) Pumping lines from the command output
Date Sat, 06 Nov 2010 08:06:41 GMT

     [ https://issues.apache.org/jira/browse/EXEC-50?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Henryk Konsek updated EXEC-50:
------------------------------

    Attachment: commons-exec.zip

I created previous patch with 'svn diff > patch_file.patch'.

But I also attach zipped project with local changes. I haven't updated it since the day I
submitted the patch so it may be out of sync with the latest trunk.

You can also send me a Linux command I should use to create patch in the format you want.

> Pumping lines from the command output
> -------------------------------------
>
>                 Key: EXEC-50
>                 URL: https://issues.apache.org/jira/browse/EXEC-50
>             Project: Commons Exec
>          Issue Type: Improvement
>    Affects Versions: 1.1
>            Reporter: Henryk Konsek
>            Assignee: Siegfried Goeschl
>            Priority: Trivial
>             Fix For: 1.2
>
>         Attachments: commons-exec.zip, lines_listener.patch
>
>
> My application makes heavy use of analyzing output lines of the long running executable.
Executed command may run even up to to few hours. Actually I'm not so interested in the result
of execution, but rather in the output produced by the program. Each line of the output contains
some important data. I need to listen to these lines of the output, filter them and send JMS
message containing selected of them.
> Current implementation of the StreamPumper makes it hard to listen to the output lines
produced by the executable since it copies entire InputStream. What I did is pumping command
output to the FilterInputStream and looking for the new line markers. It works for me, however
it would be nice to have an ability to read entire lines from the PumpStream instead of raw
bytes only. This is quite common case since executable usually format their output using the
lines instead of the raw stream of bytes.
> I created patch refactoring StreamPumper to extend AbstractStreamPumper. I created also
BufferedReaderPumper (also extending AbstractStreamPumper) to pump lines from the executable
output and send them to the OutputLinesListener. I also extracted creation of the StreamPumper
in the PumpStreamHandler to the factory method. This method can be overridden in order to
use BufferedReaderPumper instead of default StreamPumper.
> What do you think about such approach?

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message