「第1回:Javaはまだまだこれからだ!」では、Java SE 7で計画されているモジュラリティの向上について解説し、それを実現するOSGiについて触れました。
今回からはOSGi仕様が実装されたEclipse Equinoxフレームワークを実際に体験していきましょう。一番身近な例としてEclipseを起動し、OSGiフレームワークの稼動の状況をみていきます。
本連載ではEclipse 3.3を基に解説を進めますが、配布パッケージによっては開発するためのプラグインが足りません。
以下のWebサイトから「Eclipse for RCP/Plugin Developper」か「Eclipse Classic」をダウンロードしてください。
上記はどちらともZIP形式で配布されています。今回はWindows用の「Eclipse Classic」をダウンロードして、任意の場所に展開してください。展開されたフォルダにEclipseをコンソールから起動するための実行ファイル「eclipsec.exe」があります。コマンドプロンプトを立ち上げ、展開したフォルダで次のように入力してみましょう。
eclipsec.exe -console
するとEclipseが立ち上がり、コンソール上には「osgi>」という文字が表示されます。その他の環境でも起動引数に「-console」を追加すると「osgi>」という文字が表示されます。
これがEquinoxのコンソール画面になります。表示されたEquinoxコンソールで「ss」と入力してみてください。次のような文字列が表示されたはずです。
osgi> ss
Framework is launched.
id State Bundle
0 ACTIVE org.eclipse.osgi_3.3.0.v20070530
1 ACTIVE org.eclipse.equinox.common_3.3.0.v20070426
2 ACTIVE org.eclipse.update.configurator_3.2.100.v20070615
3 ACTIVE org.eclipse.core.runtime_3.3.100.v20070530
4 RESOLVED com.ibm.icu.source_3.6.1.v20070417
5 ACTIVE com.ibm.icu_3.6.1.v20070417
6 RESOLVED com.jcraft.jsch_0.1.31
7 RESOLVED javax.servlet.jsp.source_2.0.0.v200706191603
8 RESOLVED javax.servlet.jsp_2.0.0.v200706191603
9 RESOLVED javax.servlet.source_2.4.0.v200706111738
10 RESOLVED javax.servlet_2.4.0.v200706111738
11 RESOLVED org.apache.ant.source_1.7.0.v200706080842
12 RESOLVED org.apache.ant_1.7.0.v200706080842
13 RESOLVED org.apache.commons.el.source_1.0.0.v200706111724
(以降、その他のプラグイン一覧)
これは現在Eclipse上で動いているプラグインの稼動状況を一覧表にしたものです。id列はOSGiフレームワーク上にロードされている各Bundleに対して一意になるように与えられた連番です。Equinoxでは、1Pluginを1Bundleとして扱います。
Pluginはpluginsフォルダの下にJARか、もしくはフォルダで追加する形式で配置されていますが、その1つ1つがEquinox上ではBundleとして扱われています。Stateという列はBundleの稼動状況を示します。ACTIVEとなっているものは、現在JVMで稼動中のBundleです。RESOLVEDはBundleの依存関係が解決したものです。いつでも稼動させることができます。
その他のプラグイン一覧で表示されている<<Lazy>>などのStateについては、次回以降で詳しく解説していきます。Bundle列はそれぞれの名称です。
|