追加したユーザーは T.Yamamoto です。最後に編集したユーザーは T.Yamamotoで、その日時は 2009-12-23 20:05:43 です。
GroovyをOSGiサービスとしてロードする
Groovyのjarファイルは、正しいOSGiメタデータ付きでリリースされています。したがって、Eclipse EquinoxやApache FelixのようなどんなOSGi対応コンテナにもロードすることができます。このメタデータは、jarファイルのMANIFEST.MFファイルを見れば確認することができます。例えば、Jarのmanifestには以下のような行が含まれているかもしれません:
Bundle-Version: 1.7.0
Export-Package: groovy.text;version="1.7.0.beta-1-SNAPSHOT",groovy.xml;
version="1.7.0.beta-1-SNAPSHOT",groovy.util;version="1.7.0.beta-1-SNA
PSHOT",groovy.lang;version="1.7.0.beta-1-SNAPSHOT",groovyjarjarcom...これは、OSGiコンテナに対して、このJarがバージョン1.7.0であることや、指定されているパッケージ群が他のコンポーネントからのインポートのために提供されていることなどを宣言しています。
以下の例は、すべてEclipse Equinoxコンテナを使っています。Equinoxはインターネットからダウンロードするか、Eclipseのインストールによって入手可能です。
OSGiコンテナにGroovy Jarをインストールし起動するには、以下のステップを実行してください:
コンソールモードでOSGiコンテナを起動します:
java -jar org.eclipse.osgi_3.4.0.v20080605-1900.jar -console
次のようなOSGiコンソールプロンプトが表示されるはずです:
"ss"コマンドを使えば、いつでもコンテナのシステムステータスを見ることができます:
osgi> ss Framework is launched. id State Bundle
0 ACTIVE org.eclipse.osgi_3.4.0.v20080605-1900
"install"と、groovy-all jarへのfile URLを使って、Groovy jarファイルをインストールします:
osgi>install file:///home/user/dev/groovy-core/target/dist/groovy-all-1.7-beta-1-SNAPSHOT.jar
Bundle id is 10
バンドルにコンテナがidを割り当てます。"start"コマンドを使ってバンドルを起動します:
"ss"を使って、バンドルが起動されていることを確認します:
osgi> ss Framework is launched. id State Bundle
0 ACTIVE org.eclipse.osgi_3.4.0.v20080605-1900
10 ACTIVE groovy-all_1.7.0.beta-1-SNAPSHOT
"package"コマンドを使って、Groovyバンドルが提供するすべてのパッケージの一覧を見ることができます:
osgi>packages 10
groovy.xml.streamingmarkupsupport; version="1.7.0.beta-1-SNAPSHOT"<file:///home/user/dev/groovy-core/target/dist/groovy-all-1.7-beta-1-SNAPSHOT.jar [10]>groovyjarjarantlr.actions.java; version="1.7.0.beta-1-SNAPSHOT"<file:///home/user
...