GlassFish V3 Prelude での新しい機能の1つに OSGi サポートというのがあるのはご存じの方も多いかと思います。 OSGi の実行環境としては Apache Felix OSGi 実装を使っていますが、ほかの OSGi 実装で動かないかというとそんなこともありません。1月ほど前になりますが、 GlassFish v3 Prelude OSGi support: Is it really true? というブログの記事が java.net に投稿されていますので、この記事に沿って実際に Eclipse の Equinox 上で GlassFish V3 Prelude を動かしてみましょう。

用意するもの

  • GlassFish V3 Prelude:こちらからダウンロードしてください
  • Eclipse Equinox: こちらから eclipse-equinox-3.4.zip をダウンロードしてください
  • 設定ファイル(config.ini):こちらからダウンロードしてください
  • まず、GlassFish V3 Prelude をインストールします。今回は例として glassfish-v3-prelude-ml.zip を私のホームディレクトリ /home/shioda で展開(unzip)します。すると、/home/shioda/glassfishv3-prelude に GlassFish がインストールされます。

    % cd /home/shioda
    % unzip glassfish-v3-prelude-ml.zip
    
    次に /home/shioda/glassfishv3-prelude/glassfish ディレクトリで eclipse-equinox-3.4.zip を展開します。
    % cd /home/shioda/glassfishv3-prelude/glassfish
    % unzip eclipse-equinox-3.4.zip
    
    すると、eclipse Equinox のファイルが eclipse ディレクトリの下にインストールされます。 次に config.ini ファイルを /home/shioda/glassfishv3-prelude/glassfish/eclipse/configuration ディレクトリにコピーします。
    % cd /home/shioda/glassfishv3-prelude/glassfish/eclipse
    % mkdir configuration
    % cd configuration
    % cp ~/config.ini /home/shioda/glassfishv3-prelude/glassfish/eclipse/configuration
    
    設定の最後として、config.ini ファイルの最初の数行を GlassFish のインストールディレクトリに合わせて変更します。その前に UNIX 上で config.ini ファイルを開くと、改行コードが異なるために編集しにくい場合もあるので、改行コードを変更してしまいましょう。
    % cat config.ini | tr "[\r]" "[\n]" > config.ini.new
    
    そしてエディタで config.ini.new の以下の3つの行を環境に合わせて変更します。
    # GlassFish required properties
    com.sun.aas.installRoot=/home/shioda/glassfish-v3-prelude/glassfish/
    com.sun.aas.instanceRoot=/home/shioda/glassfish-v3-prelude/glassfish/domains/domain1/
    # HK2 OSGi Adapter property
    org.jvnet.hk2.osgiadapter.contextrootdir=/home/shioda/glassfish-v3-prelude/glassfish/modules
    
    
    私の場合は C: となっているところを /home/shioda に書き換えただけです。そして、config.ini.new を config.ini に rename してください。
    % mv config.ini config.ini.orig
    % cp config.ini.new config.ini
    
    これで準備はほぼ終了です。実行する場合は環境変数 GlassFish_Platform に Equinox を設定します。C Shell の場合は次のようにします。
    % setenv GlassFish_Platform Equinox
    
    そして、GlassFish を起動します。
    % /home/shioda/glassfishv3-prelude/bin/asadmin start-domain --verbose
    
    警告メッセージが出てきますが、これは既知の問題点です。本当に動いているかどうか確認するには http://localhost:8080/ にアクセスしてみてください。 今回私は Solaris 上で動かしましたが、ブログの記事は Windows 上で動かしているようですし環境依存の部分もなさそうですから他の環境でも動くだろうと思います。ぜひ皆さんもお試しください。 また、他の OSGi 環境上で動かせるようであればぜひ GlassFish チームにレポートしてあげてください。
    投稿されたコメント:

    コメント
    • HTML文法 不許可

    This blog copyright 2008 by shioda