Java Pluglet API

by Igor Kushnirskiy & Akhil Arora

Pluglet は JavaTM で書かれた プラグイン である。 Pluglet は Servlet の コンセプトに似ている。違いは、Servlet はコンテンツを供給するが、 Pluglet はそれを消費する。 Java Pluglet API は Mozilla の新しい C++ Plug-in API の、ほぼ 1:1 対応した移植である。

  • なぜ Pluglets なのか?

  • Pluglet は Blackwood プロジェクトの一部分である。プラグイン開発者にとって、 Java Pluglet による Mozilla の拡張を選択することは、 Pluglet に対して Java プラットフォームの持つアドバンテージが適用されることを意味する。

    • プラットフォームに依存しない



    • Java でプラグインを書くことは、 すなわち Java 仮想マシン(JVM) が動作する全てのプラットフォームの上で、そのプラグインが動作することである。

    • コンパクト

    • 同一の機能について比較すれば、Java バイトコードは一般的に、コンパイルされた ネイティブコードよりも小さい。そのため、プラグインのダウンロードに必要な時間は 少なくなる。

  • Pluglets vs Applets

  • よくある質問(FAQ)は、 Applet と Pluglet はどのように違うのか、というものだ。 これについては、 MozillaZine で議論された事がある。 基本的に、2つの違いがある。 Pluglet は、(訳注:ブラウザが)特定の Content Type に遭遇した時に起動されるが、Applet は <applet> タグに遭遇した時に起動される。 もう一つの違いは、Pluglet は Applet とは異なり、ディスク上にインストールされていて、 それぞれの起動毎にダウンロードされない。

  • どのように?

  • Pluglets を有効にする鍵は Pluglet エンジンである。 Mozilla で Pluglet エンジンが起動する仕組みは、 XPCOM サービス と同様である。 Mozilla がある MIME タイプのためのハンドラを取得できなかった時、 Mozilla から Pluglet エンジンに問い合わせが行なわれる。Pluglet エンジンは、適切な Pluglet があればそれに作業を委任する。C++ と Java の間を行き来する際に、いくつかの JNI が関与する場合もある。

  • デザインの目標

  • 我々は、Java の機能を可能な限り反映させうる範囲で、 Plug-in 作成者が新たな API を学習しなくても良いように、Pluglet の API を C++ のそれとできるだけ似たものになるように設計した。別のアダプターを用いて、よりクリーンな、Java らしい Plug-in API をデザインする事は容易だが、我々はこの選択を優先するべきであると考えた。

必要なもの

このセクションはあなたが pluglet プロジェクトをビルドする前に 必要となるものについて書いている。
    • JDK1.2 以降
    • 現在の Mozilla ビルド

コードの取得とビルド

コードの取得

  1. あなたは最初に最も新しい Mozilla と Pluglet のコードを取得しなければならない。 これは http://www.mozilla.org/cvs.html で見つけられるだろう。 しかし、cvs checkout SeaMonkeyAll ではなく cvs checkout SeaMonkeyBlackwood を使用する事。

コードをビルドする

  1. http://www.mozilla.org/build/ で発見できるインストラクションを使用して Mozilla をビルドする。
  2. mozilla/java/plugins/README の中の手順に従う。
注意事項: ビルドは、現在 NT4.0、Linux、そして Solaris だけのために デザインされている。もしあなたが他のプラットフォームで それらをビルドして動作させるように変更した場合には、 にメールしなさい。

Pluglet サービス バイナリ

便利なblackwood xpi パッケージがあります。

トラブルシューティング

  1. 問題
    Pluglets が動作しない。pluglet エンジンが登録されていないようだ。

    解決法
    $MOZILLA_FIVE_HOME/ の component.reg を削除して、ブラウザを再起動。

デモとスクリーンショット

私達は、4つの有効なデモを持っている。 これは スクリーンショット である。

Pdf viewer
Rtf viewer
Zip viewer
Media player

リファレンス