Forum: Ruby Ruby and legacy Java Applications

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Joe Wölfel (Guest)
on 2008-12-03 20:44
(Received via mailing list)
What are some good ways to integrate Ruby into legacy Java
applications?  I realize
I can execute small Ruby scripts from Java like this:

         Ruby runtime = Ruby.newInstance();
         runtime.evalScriptlet("puts 'Hello from Ruby'");

However, this seems to lend itself only to small snippets of Ruby.
Often I'm more likely
to have a larger body of Ruby code that includes many files, gem
dependencies, and
the ability to work with legacy installers.  Is there an easy way to
accomplish this?
Post T. (Guest)
on 2008-12-04 00:22
Joe Wölfel wrote:
> What are some good ways to integrate Ruby into legacy Java
> applications?  I realize
> I can execute small Ruby scripts from Java like this:
>
>          Ruby runtime = Ruby.newInstance();
>          runtime.evalScriptlet("puts 'Hello from Ruby'");
>
> However, this seems to lend itself only to small snippets of Ruby.
> Often I'm more likely
> to have a larger body of Ruby code that includes many files, gem
> dependencies, and
> the ability to work with legacy installers.  Is there an easy way to
> accomplish this?


Try the free tool TudbcJRubyServlet
http://www.tudbc.org/tudbcjrubyservlet
which allows you to use JRuby (which is compatible with Ruby 1.8.6) in a
Java EE (such as GlassFish, Resin, Tomcat, etc), which automatically
will allow you to use your Java codes.
Charles Oliver N. (Guest)
on 2008-12-04 21:34
(Received via mailing list)
Joe Wölfel wrote:
> dependencies, and
> the ability to work with legacy installers.  Is there an easy way to
> accomplish this?

In general the easiest way would be to have the Ruby code implement a
Java interface and get that instance back into Java. There's a few
examples on wiki.jruby.org. Does that sound lke what you want?

- Charlie
Richard C. (Guest)
on 2008-12-05 01:13
(Received via mailing list)
On Thu, Dec 4, 2008 at 7:28 PM, Charles Oliver N.
<removed_email_address@domain.invalid> wrote:
>> I'm more likely
>> to have a larger body of Ruby code that includes many files, gem
>> dependencies, and
>> the ability to work with legacy installers.  Is there an easy way to
>> accomplish this?
>
> In general the easiest way would be to have the Ruby code implement a Java
> interface and get that instance back into Java. There's a few examples on
> wiki.jruby.org. Does that sound lke what you want?

I am just curious, but couldn't you also have a JRuby script construct
and execute
your application's mainline? Or duplicate the behaviour of the
mainline in some way.

That way you can extend Java functionality with Ruby, because you have
wrapped
your entire app up in Ruby to begin with.

I have to admit that this is something I have been thinking about for
a while, if only
to gain access to easy JIRB debugging.
Charles Oliver N. (Guest)
on 2008-12-05 04:44
(Received via mailing list)
Richard C. wrote:
> to gain access to easy JIRB debugging.
Yup, ought to work just fine. I suppose it only depends on whether you
control the entry point or not. If you're adding Ruby to an existing
Java application, you don't necessarily have that option. But writing it
in Ruby to start, just calling out to Java as needed, is certainly a
simpler way.

- Charlie
This topic is locked and can not be replied to.