JavaEmbedUtils should have methods to set/reset Standard I/O
------------------------------------------------------------

                 Key: JRUBY-3662
                 URL: http://jira.codehaus.org/browse/JRUBY-3662
             Project: JRuby
          Issue Type: New Feature
          Components: Embedding
    Affects Versions: JRuby 1.3
            Reporter: Yoko Harada
         Attachments: ReassignStandardIO.patch

Current implementation does not have any short-cut method to change 
$stdin(STDIN), $stdout(STDOUT, $defout, $>), and $stderr(STDERR, $deferr). 
Thus, an embed program need to use JRuby's internal API to support the feature, 
which enables to change the assigned streams of standard I/O. One example is in 
org.jruby.demo.TextAreaReadline. However, it is not a good idea to use internal 
API directly.

Changing assigned streams of standard I/O is necessary when implementing JSR 
223 Scripting API, and is also a good feature for web application and debugging 
for embedders For example, we can set a stream, returned from 
HttpServletResponse.getWriter(), to $stdout. Then output of "puts 'Hello'" will 
be sent back to a browser. If we set StringWriter to $stdout, the output of 
"puts 'Hello'" will be written to StringWriter. So, assertEquals("Hello", 
stringWriter.toString()); works. For these reasons, JavaEmbedUtils should have 
methods to reassign standard I/O.

Since embed API converts Reader/Writer to Input/OutputStream, methods' 
arguments in JavaEmbedUtils can have  Input/OutputStream types. This is 
suitable to methods in JavaEmbedUtils.


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email


Reply via email to