JRuby, Netbeans and OSGi

View: New views
6 Messages — Rating Filter:   Alert me  

JRuby, Netbeans and OSGi

by paulfras :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

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



Re: JRuby, Netbeans and OSGi

by James Ervin :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

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-your-eclipse-plugin.html

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


On Tue, Nov 11, 2008 at 6:05 PM, Paul Fraser <paulf@...> wrote:
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




Re: JRuby, Netbeans and OSGi

by James Ervin :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

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


On Wed, Nov 12, 2008 at 10:02 AM, James Ervin <jeervin@...> 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.  

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-your-eclipse-plugin.html

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



On Tue, Nov 11, 2008 at 6:05 PM, Paul Fraser <paulf@...> wrote:
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





Re: JRuby, Netbeans and OSGi

by Martin Krauskopf :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

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_netbeans_in_ruby

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



Re: JRuby, Netbeans and OSGi

by Tommy M. McGuire :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

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:

> 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-your-eclipse-plugin.html
>
> 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.
>
[...]

>
> On Tue, Nov 11, 2008 at 6:05 PM, Paul Fraser <paulf@...
> <mailto:paulf@...>> wrote:
>
>     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.


--
Tommy M. McGuire
mcguire@...

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

    http://xircles.codehaus.org/manage_email



Re: JRuby, Netbeans and OSGi

by Tommy M. McGuire :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Tommy M. McGuire wrote:

> 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.

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@...

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

    http://xircles.codehaus.org/manage_email