Hi,
you can see it here used in the redirect_java_err function:
http://github.com/intalio/buildr4osgi/blob/master/spec/compile/compiler_spec.rb

The javac specs could also use this function to check whether warnings are
issued or not.

Thanks,

Antoine

On Wed, Sep 16, 2009 at 09:19, peter schröder <[email protected]> wrote:

> Could you post a simple working example to the wiki?
>
> Am 15.09.2009 um 23:42 schrieb Antoine Toulme:
>
>
>  So this works:
>>   byteArray = Rjb::import('java.io.ByteArrayOutputStream')
>>   printStream = Rjb::import('java.io.PrintStream')
>>   out = byteArray.new()
>>   Rjb::import('java.lang.System').out = printStream.new(out)
>>   err = byteArray.new()
>>   Rjb::import('java.lang.System').err = printStream.new(err)
>>   ... [do something]
>>   err.toString.should match(/WARNING/)
>>
>> Thanks Alex!
>>
>> Antoine
>>
>> On Tue, Sep 15, 2009 at 21:02, Alex Boisvert <[email protected]
>> >wrote:
>>
>>  Maybe worth considering just substituting System.out, System.err with a
>>> PrintStream hooked to a ByteArrayOutputStream, collecting the result and
>>> applying regexps to colorize and output to $stdout, $stderr respectively.
>>> That way, there's no messing with the classpath and no additional
>>> interface
>>> complexity.
>>>
>>> alex
>>>
>>>
>>>
>>> On Tue, Sep 15, 2009 at 10:38 AM, Antoine Toulme <
>>> [email protected]>wrote:
>>>
>>>  So, I would have a .class file for the Java code needed, that I would
>>>> add
>>>> to buildr.The .class would be added to the RJB classpath, and the
>>>> manipulation itself would be done on Java.load.
>>>> I can probably to do this in a pluggable way (read: as a separate
>>>> project).
>>>>
>>>> Thanks,
>>>>
>>>> Antoine
>>>>
>>>> On Tue, Sep 15, 2009 at 17:53, Alex Boisvert <[email protected]
>>>> >wrote:
>>>>
>>>>  It should work fine and I don't see a better approach.
>>>>>
>>>>> alex
>>>>>
>>>>>
>>>>>
>>>>> On Tue, Sep 15, 2009 at 6:41 AM, Antoine Toulme <
>>>>> [email protected]
>>>>>
>>>>>> wrote:
>>>>>>
>>>>>
>>>>>  Hi everyone,
>>>>>> I'm trying to find a nice way to redirect the RJB output. I have some
>>>>>> output
>>>>>> made directly from Java that I would like to reformat and eventually
>>>>>> colorize.
>>>>>>
>>>>>> From what I read, the best solution would be to replace the
>>>>>> PrintStreams
>>>>>> used in System.out and System.err by something that would pipe to
>>>>>> $stdout
>>>>>> and $stderr respectively.
>>>>>>
>>>>>> From the RJB doc, I see RJB can bind a Ruby object to a Java
>>>>>> interface.
>>>>>> That
>>>>>> sounds like the right deal...
>>>>>>
>>>>>> but PrintStream is a class.
>>>>>>
>>>>>> The workaround is to have some Java code exposing an interface, with a
>>>>>> PrintStream implementation that delegates everything to said
>>>>>> interface,
>>>>>> and
>>>>>> have RJB instanciate the interface and pass output along to stdout and
>>>>>> stderr.
>>>>>>
>>>>>> Was this attempted before ? Any advice on this ?
>>>>>>
>>>>>> Thanks,
>>>>>>
>>>>>> Antoine
>>>>>>
>>>>>>
>>>>>
>>>>>
>>>>
>>>
> _________________________________
> Peter Schröder
> IT
>
> blau: +49 (0) 178 139 1035
> fax: +49 (0) 40 288 071 - 71
> mail: [email protected]
>
> blau Mobilfunk GmbH
> Schulterblatt 124
> D-20357 Hamburg
>
> Sitz: Hamburg
> HRB 80531 Amtsgericht Hamburg
> Geschäftsführer: Dirk Freise, Martin Ostermayer, Thorsten Rehling
>
>

Reply via email to