Forum: JRuby JRuby, Netbeans and OSGi

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.
7152eafe55a8df6d712fb39691d768df?d=identicon&s=25 Paul Fraser (paulfras)
on 2008-11-12 01:06
(Received via mailing list)
Some excitement (?)  seems to be developing around OSGi  (Open Services
Gateway Initiative)
Are there any examples of using JRuby code in this environment, if it is
possible?
A few past entries in this JRuby list mention OSGi but no pointers to
any tutorials or examples can be found.
http://wiki.netbeans.org/OSGiAndNetBeans   talks about netbeans, but a
simple introductory example for JRuby/Netbeans would be an excellent
starting point.

Thanks
Paul Fraser


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

    http://xircles.codehaus.org/manage_email
1d6bca214951c92498cae652575df76b?d=identicon&s=25 James Ervin (Guest)
on 2008-11-12 17:02
(Received via mailing list)
I don't know much about the NetBeans world, Eclipse contributor and
fanboy
that I am.  I do know that in my Eclipse plugin Groovy Monkey, I have
enabled JRuby as one of the languages that you can write scripts for.  I
have also tested the plugin with an Eclipse distribution as small as the
Eclipse RCP.
Why might that relate to your question?  Well Eclipse is run on an OSGi
container (one of its strengths IMHO) and the Eclipse RCP is an OSGi
container with a couple of megabytes of Eclipse bundles like resources,
core, runtime and SWT/JFace.  I have put thought into extending Groovy
Monkey down to just the bare bones OSGi container, but haven't had the
time
or really the push to get it done.
As far as using JRuby on OSGi and writing bundles in OSGi, I am not so
certain.  I know it is possible for the Groovy language for instance,
and I
wrote a blog entry on the issues concerning that:
http://iacobus.blogspot.com/2007/03/add-groovy-to-...

Still I know alot of this is specific to Groovy and the Eclipse
platform,
but hey the Eclipse platform running on Equinox (Eclipse's OSGi
container)
is the number one example of an OSGi container (I'm sure to a bit of
chagrin
to OSGi folks like Peter Kriens).

In my opinion, if the JRuby compiler takes Ruby scripts and produces
byte
code that can be packaged in an OSGi bundle and you provide the JRuby
runtime as an OSGi library bundle for that container, it should work.

Another aside, take a look at Glimmer.  It is a SWT builder plugin for
Eclipse that allows you to write SWT/JFace code in Ruby.  I have a mind
to
try to incorporate it into Groovy Monkey.  The URL for glimmer is:
http://www.eclipse.org/glimmer/

The author for Glimmer is Andy Maleh and he blogs about it at:
http://andymaleh.blogspot.com/

So there should be some examples, sorry they are all Eclipse specific.
I
would be curious to know if there is any activity of this sort on the
NetBeans side of the world.

Thanks,
James E. Ervin, IV

A human being should be able to change a diaper, plan an invasion,
butcher a
hog, conn a ship, design a building, write a sonnet, balance accounts,
build
a wall, set a bone, comfort the dying, take orders, give orders,
cooperate,
act alone, solve equations, analyze a new problem, pitch manure, program
a
computer, cook a tasty meal, fight efficiently, die gallantly.
Specialization is for insects.
-Robert A. Heinlein

Blog: http://iacobus.blogspot.com
1d6bca214951c92498cae652575df76b?d=identicon&s=25 James Ervin (Guest)
on 2008-11-12 17:07
(Received via mailing list)
I just realized I missed the scope of your question.  I know that it is
possible to run OSGi inside of a J2EE container and vice versa, via some
bridging frameworks.  I am not aware of any bridges between NetBeans
module
system (what do they run on anyway?) and OSGi.
Thanks,
James E. Ervin, IV

A human being should be able to change a diaper, plan an invasion,
butcher a
hog, conn a ship, design a building, write a sonnet, balance accounts,
build
a wall, set a bone, comfort the dying, take orders, give orders,
cooperate,
act alone, solve equations, analyze a new problem, pitch manure, program
a
computer, cook a tasty meal, fight efficiently, die gallantly.
Specialization is for insects.
-Robert A. Heinlein

Blog: http://iacobus.blogspot.com
D31c46c212a25d1d3477b0f8c423abb8?d=identicon&s=25 Martin Krauskopf (mkrauskopf)
on 2008-11-12 17:26
(Received via mailing list)
James Ervin wrote:
> I don't know much about the NetBeans world, Eclipse contributor and
> fanboy that I am.  I do know that in my Eclipse plugin Groovy Monkey, I
> have enabled JRuby as one of the languages that you can write scripts
> for.  I have also tested the plugin with an Eclipse distribution as
> small as the Eclipse RCP.
[...]
> So there should be some examples, sorry they are all Eclipse specific.
>  I would be curious to know if there is any activity of this sort on the
> NetBeans side of the world.

Hi James,

I've tried to play with scripting NetBeans in Ruby. It was a half a year
ago and it kind of out-dated these days:

   http://blogs.sun.com/martink/entry/scripting_netbe...

There were some barriers which made it a bit harder, but which should be
gone and thus it should be easier today. But I did not find a time to
get to the second round.

One day I would like to develop plugin for NetBeans in (J)Ruby. There
does not seem to be any technical barriers. So it's just about the time
spent on that. But that's off-topic for Eclipse guy ;)

Cheers,
  m.

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

    http://xircles.codehaus.org/manage_email
F01ce529e34138c62cd9af4e36ac8921?d=identicon&s=25 Tommy M. McGuire (Guest)
on 2008-11-12 18:03
(Received via mailing list)
Speaking of JRuby and OSGi, I'm currently working with a couple of Rails
applications that we want to run on the SpringSource dm Server
(basically,
Equinox with Tomcat embedded and the ability to deploy .war files).  One
thing
that I have gotten as far as a proof-of-concept is to:

* remove jruby-complete-1.1.5.jar from the .war files (and rack) of a
couple of
really simple Rails apps,
* add "Require-Bundle: jruby-complete" (and ditto rack) to the .war
files'
MANIFEST.MF,
* use Peter Kriens' bnd to add some OSGi metadata to
jruby-complete-1.1.5.jar
(...rack),
* deploy the two apps to the server, with the jruby and rack bundles.

It looked like it worked.

The ultimate goal being to reduce the memory footprint by taking
everything that
is not the application out of the apps' .war files.  I have no idea yet
if it
actually does so, or if it actually *really* works, but it looks good so
far.

James Ervin wrote:
> Monkey down to just the bare bones OSGi container, but haven't had the
> to a bit of chagrin to OSGi folks like Peter Kriens).
> The author for Glimmer is Andy Maleh and he blogs about it
> at: http://andymaleh.blogspot.com/
>
> So there should be some examples, sorry they are all Eclipse specific.
>  I would be curious to know if there is any activity of this sort on the
> NetBeans side of the world.
>
[...]
>     http://wiki.netbeans.org/OSGiAndNetBeans   talks about netbeans, but
>     a simple introductory example for JRuby/Netbeans would be an
>     excellent starting point.


--
Tommy M. McGuire
mcguire@crsr.net

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

    http://xircles.codehaus.org/manage_email
F01ce529e34138c62cd9af4e36ac8921?d=identicon&s=25 Tommy M. McGuire (Guest)
on 2008-11-12 18:21
(Received via mailing list)
Tommy M. McGuire wrote:
> jruby-complete-1.1.5.jar (...rack),
> * deploy the two apps to the server, with the jruby and rack bundles.
>
> It looked like it worked.
>
> The ultimate goal being to reduce the memory footprint by taking
> everything that is not the application out of the apps' .war files.  I
> have no idea yet if it actually does so, or if it actually *really*
> works, but it looks good so far.

Ok, rather than leaving everyone hanging, here are the .bnd files I
used:

JRuby

-classpath: ../original/jruby-complete-1.1.5.jar
Bundle-Name: jruby-complete
Bundle-SymbolicName: jruby-complete
Bundle-Version: 1.1.5
Export-Package: org.jruby.*; version=${Bundle-Version}
Private-Package: !org.jruby.*, *
Import-Package: *; resolution:=optional

That creates an OSGi bundle from jruby-complete, including all of the
original
contents.  It exports the org.jruby.* packages (but not any others;
there are
quite a few, including com.kenai.constantine, that I don't know anything
about),
  and imports things like:

* com.sun.mirror.*,
* javax.management and .swing,
* org.apache.bsf and .bsf.util, and
* sun.misc

Rack

-classpath: ../original/jruby-rack-0.9.2.jar
Bundle-SymbolicName: jruby-rack
Bundle-Name: jruby-rack
Bundle-Version: 0.9.2
Import-Package: \
   org.jruby.*, \
   javax.servlet.*, \
   *; resolution:=optional
Export-Package: *; version:=${Bundle-Version}

The import package header ensures org.jruby.* and javax.servlet.* are
required
and makes everything else optional.

OSGi uses bizarre classloader magic, JRuby uses bizarre classloader
magic, and
I'm fairly new to Java, Ruby, OSGi, and JRuby, so I have no idea whether
or not
it will ultimately explode and spew flaming death.


--
Tommy M. McGuire
mcguire@crsr.net

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

    http://xircles.codehaus.org/manage_email
This topic is locked and can not be replied to.