最初に言っておきます。挫折ネタです(笑)。
先週、このブログでやっていた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アプリを書くところから始めないと、一足飛びでは理解できませんわ。