CLOVER🍀

That was when it all began.

VirgoでJRubyは動くのか?

最初に言っておきます。挫折ネタです(笑)。

先週、このブログでやっていたVirgo&OSGiの勉強の成果を、そもそも調べるきっかけを与えてくれた方に見せてあげたのですが、その時にこんなことを聞かれました。

「JRubyを動かすことってできる?」

ぬぉ、またハードル高い質問が…。まあ興味がないわけではないので、とっかかりだけやってみました。

まずは、JRubyのダウンロード。
http://www.jruby.org/download

ここで「JRuby Complete.jar」を選び、物は試しと解凍。解凍したMETA-INF/MANIFEST.MFを見ると…

Manifest-Version: 1.0
TODAY: May 23 2011
Built-By: enebo
Created-By: 1.5.0_19 (Apple Inc.)
Import-Package: com.kenai.jnr.x86asm;resolution:=optional,com.sun.mirr
 or.apt;resolution:=optional,com.sun.mirror.declaration;resolution:=op
 …省略…
TSTAMP: 1651
DSTAMP: 20110523
Bnd-LastModified: 1306187623738
Export-Package: org.jruby.ast.visitor;uses:="org.jruby.ast";version="1
 .6.2",org.jruby.runtime.callsite;uses:="org.jruby.runtime.builtin,org
 …省略…
Bundle-Version: 1.6.2
Ignore-Package: org.jruby.org.objectweb.asm,org.jruby.embed.osgi.utils
 ,org.jruby.ast.executable,org.jruby.compiler,org.jruby.compiler.ir.co
 …省略…
Bundle-Name: JRuby 1.6.2
Bundle-Description: JRuby 1.6.2 OSGi bundle
Ant-Version: Apache Ant 1.8.2
Private-Package: cext.native.Darwin,jnr.netdb,com.kenai.constantine.pl
 …省略…
Originally-Created-By: 1.5.0_19-b02-304 (Apple Inc.)
Bundle-ManifestVersion: 2
Main-Class: org.jruby.Main
Bundle-SymbolicName: org.jruby.jruby
Tool: Bnd-0.0.396

とまあ、OSGi的にやる気のありそうな内容が書かれていたので、Virgoに登録できるんじゃね?と思い、とりあえずAdmin Consoleに放り込んでみました。

結果。

入ったー!!ごくあっさり…。

が、ここでパタっと手が止まります。この後、どうしたらいいかわからない…。

JRuby自体はOSGiを意識しているっぽくて、APIレベルでOSGiのパッケージが切られています。
http://www.jruby.org/apidocs/org/jruby/embed/osgi/package-summary.html

他にもJRubyやOSGiのキーワードで検索してもそこそこヒットするのですが、
http://maniagnosis.crsr.net/2009/07/running-jruby-in-osgi-container.html
この先、VirgoにBundleとしてRubyで書いたBundleを作るってところで考え込むわけです。

Webアプリとして書くのが外から動作確認ができてわかりやすかろうと思うのですが…何を用意すりゃあいいんでしょう…?この辺は、Rubyの勘所がないところが効いていると思いますが。

雰囲気的に、JRubyのOSGiScriptingContainerクラスを利用してどうのこうのするんでしょうが…結局、あまり手が動かせないまま終了…っぽいですわ。う〜ん…。

(追記)
一応、もうちょっとあがいてみたのですが、STSが不安定で落ちまくるのとEclipseのRubyサポートとSTSがうまく統合させられず、やっぱり断念。つか、これやるならJRubyで簡単なWebアプリを書くところから始めないと、一足飛びでは理解できませんわ。